以下功能定义是什么意思?为什么函数名中有赋值运算符?
def func=(param)
@param = param
end
答案 0 :(得分:2)
这是Ruby中的setter方法。它允许您执行model.func = 'some value'
。
答案 1 :(得分:1)
以下功能定义是什么意思?
它们在Ruby中被称为 writer 方法。
为什么函数名中有赋值运算符?
在语法中添加 sugar 。
虽然你有一个方法
def func=(param)
@param = param
end
您可以将其称为正常作业
ob.func = 12 # same as obj.func(12)
答案 2 :(得分:1)
这是Assignment Method。它使您能够定义行为类似于赋值的方法:
class C
def value=(value)
@value = value
end
end
c = C.new
c.value = 42
答案 3 :(得分:1)
写作时
class Check
attr_accessor :c_equals
def c_equals=(some value)
@c_equals = some_value
end
def c_equals
@c_equals
end
end
c = Check.new
c.c_equals = 'Hello World'
c.c_equals
通过该方法执行赋值操作时,将调用带有等号的方法名称。您可以在上面的示例中看到,当您致电c.c_equals="hello world"
时,系统会调用函数c_equals=()
。