gpt4 book ai didi

方法的 ruby​​ 关键字参数

转载 作者:数据小太阳 更新时间:2023-10-29 06:32:41 26 4
gpt4 key购买 nike

如何像 rails 那样声明一个带有关键字参数的方法。一些例子可能是

Person.find(:all, :conditions => "..."). 

如何使用符号来创建类似于上述的方法?

我对 ruby 很陌生。提前致谢!

最佳答案

Ruby 实际上没有关键字参数。 Rails 正在利用 Ruby 的一个特性,它允许您省略散列周围的大括号。例如,对于 find,我们真正调用的是:

Person.find(:all, { :conditions => "...", :offset => 10, :limit => 10 } )

但如果散列是方法的最后一个参数,您可以省略大括号,它仍将被视为散列:

Person.find(:all, :conditions => "...", :offset => 10, :limit => 10)

您可以在自己的方法中使用它:

def explode(options={})
defaults = { :message => "Kabloooie!", :timer => 10, :count => 1 }
options = defaults.merge(options)

options[:count].times do
sleep options[:timer]
puts options[:message]
end
end

然后调用它:

explode :message => "Meh.", :count => 3

或者不带参数调用它,导致使用所有默认值:

explode

关于方法的 ruby​​ 关键字参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2463053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com