Ruby中调用方法
Ruby是怎么判断方法名的:
首先这个明显的存在对象调用,譬如obj.method self.method ,
后面加了参数了 如 method(attr1,attr2...) ,
这就能直接的判断这个method是方法名,而不是变量名
所以在调用的时候需要的注意:
class A
def attr= name
@name = name
end
def attr
self.attr= "sdas"
@name
end
end
obj = A.new
p obj.attr
=> sdas
但是如果这样使用:
class A
def attr= name
@name = name
end
def attr
attr= "sdas"
@name
end
end
obj = A.new
p obj.attr
则返回 nil
原因是
在这个标记的地方 并没有将attr= "sdas" 当做方法在调用,而是在当做 常量使用,正确的应该是
是使用
self.attr= "sdas"