ruby中的实例变量虽然不用事先定义,就可以拿来直接使用,且默认初始化值是nil,但是并不表示就可以直接放在class的方法之外定义,对与java而言,在class中定义定义一个成员变量不是也要先
声明它是一个变量对么?比如java中的
对于ruby来说,在class的方法之外的代码,属于first place code,意味着写在这里的代码,当类加载器载入这个ruby class的事后,就会被执行且只执行一次,这里的代码在跟class load交互,指示class load需要作什么事情~~~
比如一个ruby class文件
class FooBar
puts 'catch me in first place'
def foobar
'catch me in method'
end
end然后你在irb中require这个文件,你会发现,require过程中,"puts 'catch me in first place'"这行代码会被执行,然后无论你怎么实例化这个class,这行代码都跟这个class无关了.