@里面用一个自我方法究竟做了什么?

Joh*_*gan 3 ruby

我今天在一些代码中看到了这个.

class Foo
  def self.bar 
    @myvar = 'x'
  end 
end 
Run Code Online (Sandbox Code Playgroud)

究竟是什么访问?据我所知,这是实例方法无法访问的.这叫什么(google-able),因为我似乎无法在其他任何地方找到这样的例子.

mu *_*ort 7

@myvar语法识别myvar为一个实例变量,因此真正的问题是这样的:

self类方法里面有什么?

答案是" self是类对象".所以,@myvarFoo类对象的实例变量.如果添加另一个类方法:

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在标准输出上看到.