我今天在一些代码中看到了这个.
class Foo
def self.bar
@myvar = 'x'
end
end
Run Code Online (Sandbox Code Playgroud)
究竟是什么访问?据我所知,这是实例方法无法访问的.这叫什么(google-able),因为我似乎无法在其他任何地方找到这样的例子.
该@myvar语法识别myvar为一个实例变量,因此真正的问题是这样的:
self类方法里面有什么?
答案是" self是类对象".所以,@myvar是Foo类对象的实例变量.如果添加另一个类方法:
class Foo
def self.pancakes_house
@myvar
end
end
Run Code Online (Sandbox Code Playgroud)
然后这样做:
Foo.bar
puts Foo.pancakes_house
Run Code Online (Sandbox Code Playgroud)
你会x在标准输出上看到.