如果这是一个菜鸟问题,我很抱歉,但我似乎无法在stackoverflow或其他任何地方找到答案。代码是:
def full_name=(new_full_name)
# stuff
end
当我在控制台中定义它时,试着唤起它:
full_name # nil
full_name # [hangs, needs ^C]
full_name= arg # works like normal function
full_name # works again with no arguments, as if I passed the previous argument
那么,正在发生什么?
感谢。
答案 0 :(得分:0)
以=
结尾的方法定义了一个setter。在定义这样的setter时,无论在调用setter时是什么,ruby都会返回方法参数。
然后,您可以使用object.full_name= "Daniel"
返回=> "Daniel"
您的示例中的其他一些常见附录:
问号,例如
has_full_name?
应返回布尔值
感叹号,例如
revert_full_name!
应该还原对象的full_name变量
revert_full_name
应返回恢复的full_name变量,但不在对象
中更改它