Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类外的ruby ivar_Ruby - Fatal编程技术网

类外的ruby ivar

类外的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

我可以定义类外的@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
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'调用#
)。