类外的ruby ivar
我可以定义类外的@some_ivar。这个ivar属于哪一类?它的范围是什么 比如说,, 我可以在example.rb中这样说类外的ruby ivar,ruby,Ruby,我可以定义类外的@some_ivar。这个ivar属于哪一类?它的范围是什么 比如说,, 我可以在example.rb中这样说 @var = "Hi" 在irb中,我可以要求example.rb和access@var表明var属于名为main的顶级对象 $ irb 1.9.3p0 :001 > @var = 'Hi' => "Hi" 1.9.3p0 :002 > self => main 1.9.3p0 :003 > @var => Hi mai
@var = "Hi"
在irb中,我可以要求example.rb和access@var表明var属于名为
main
的顶级对象
$ irb
1.9.3p0 :001 > @var = 'Hi'
=> "Hi"
1.9.3p0 :002 > self
=> main
1.9.3p0 :003 > @var
=> Hi
main
基本上是一个具有有趣属性的对象:在其上下文中定义的任何方法(在“普通”类之外)对所有对象都可用
$ irb
1.9.3p0 :001 > def foo
1.9.3p0 :002?> 1
1.9.3p0 :003?> end
=> nil
1.9.3p0 :004 > Object.new.foo
=> 1
1.9.3p0 :005 > "".foo
=> 1
该变量属于名为
main
的顶级对象
$ irb
1.9.3p0 :001 > @var = 'Hi'
=> "Hi"
1.9.3p0 :002 > self
=> main
1.9.3p0 :003 > @var
=> Hi
main
基本上是一个具有有趣属性的对象:在其上下文中定义的任何方法(在“普通”类之外)对所有对象都可用
$ irb
1.9.3p0 :001 > def foo
1.9.3p0 :002?> 1
1.9.3p0 :003?> end
=> nil
1.9.3p0 :004 > Object.new.foo
=> 1
1.9.3p0 :005 > "".foo
=> 1
至少在Ruby 1.9.2中,
main
中定义的方法似乎是对象的私有方法(private方法'foo'调用#
)。至少在Ruby 1.9.2中,main
中定义的方法似乎是对象的私有方法(private方法'foo'调用#
)。