根据我的理解,Ruby类变量前面有@@
,而实例变量前面有@
。但是,如果他们在一个类体内被定义而没有先于任何东西,这意味着什么呢?
class MyClass
some_var = 'hello'
end
在这种情况下some_var
会引用什么?
答案 0 :(得分:0)
这是一个局部变量。请参阅有关“Local variables”的官方文档。
当在类的范围内声明时,局部变量会在加载类时进行计算。试着运行:
class MyClass
bad_idea = 1/0
def initialize
puts "this is silly #{bad_idea}"
end
end
puts "I told you this wouldn't work!"
您将获得ZeroDivisionError: divided by 0
,"I told you this wouldn't work!"
永远不会被打印。