通过访问器方法访问实例变量时,表达式和有什么attribute
区别?比如说,我们定义了一个访问器:self.attribute
attribute
def post
@post
end
我们可以打电话
self.post
或者干脆
post
添加有什么特别之处self
?
当可能存在隐藏方法调用的本地 var 时,情况会有所不同。Usingself
允许我们指定我们想要的方法,而不是本地 var。看一个例子:
class Foo
def post
@post
end
def post= (content)
@post = content
end
def test
#difference 1
p post # >> nil
@post = 10
p post # >> 10
post = 42
p post # >> 42
p self.post # >> 10
#difference 2
# assign to @post, note that you can put space between "self.post" and "="
self.post = 12
#otherwise it means assigning to a local variable called post.
post = 12
end
end
Foo.new.test