我遇到了一些Ruby代码,我试图理解为什么在initialize方法的声明中,变量的名字末尾有冒号。
结肠有什么原因吗?
attr_reader :var1, :var2
def initialize(var1:, var2:)
@var1 = var1
@var2 = var2
end发布于 2016-11-03 10:58:46
这些都是关键字参数。
你可以用他们的名字,而不是位置。例如。
ThatClass.new(var1: 42, var2: "foo")或
ThatClass.new(var2: "foo", var1: 42)发布于 2016-11-03 10:58:56
它被称为关键字参数。
关键字参数类似于具有默认值的位置参数: def add_values(第一: 1,第二: 2)第一+第二端 任意关键字参数将在**中接受: def gather_arguments (第一:零,* rest )p第一,rest结束gather_arguments第一: 1,第二: 2,第三:3#打印1,然后{:second=>2,:third=>3} 当调用带有关键字参数的方法时,参数可能以任何顺序出现。如果调用方发送未知关键字参数,则会引发ArgumentError。 当混合关键字参数和位置参数时,所有位置参数必须出现在任何关键字参数之前。
https://stackoverflow.com/questions/40399730
复制相似问题