Equal sign in Ruby method definition
本问题已经有最佳答案,请猛点这里访问。
我遇到了以下方法定义,想知道第一个和第二个定义的区别。
定义中第一个没有等号:
1 2 3 | def name display_name(:name) end |
这一秒有等号:
1 2 3 4 5 6 7 8 9 10 11 12 | def name=(new_name) if! self[:real_name] self[:real_name] = new_name gera_name_exhibition else if new_name.is_a? Hash self[:name] = new_name.sort.map {| b | b [1]} .join ('') else self[:name] = new_name end end end |
第一个是声明
这是一个例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class GSExample def name @name end def name=(val) @name = val end end e = GSExample.new puts e.name # => nil e.name = 'dave' puts e.name # => dave |
在上面你可以看到
通常是吸气剂