刚刚从 python 转到 ruby,好多问题不清楚啊!!
def age= (value) age = value puts age return age*2 end
age = 5 #为什么没有输出?不是已经执行该方法了吗?
puts age= 5 #为什么输出为 5 而不是为 10?
class A def age=(value) puts "A age=\n" end end a = A.new a.age = 2 # "A age=" def age= (value) puts "age=" end age = 5 puts age # 5, age is local variable self.age=5
age=5 其实只定义了一个局部变量
#2 楼 @Roland.Xu 谢谢您!不过我还有点不太明白,当定义了 age= (不是在类里面)这个方法后,age= 5 只是定义了一个局部变量,那要怎样才能执行定义的 age= 这个方法呢?
#2 楼 @Roland.Xu 不好意思 我刚刚运行您的代码 发现最后一条语句就是执行了定义的方法 再次谢谢您
https://ruby-china.org/topics/24631 这有关于方法后加‘=’的讨论,可以参考下
send(:age=, 3) # 3 p send(:age=, 3) # 3 6
#5 楼 @Catherine 谢谢