Ruby类中定义的正常变量是什么意思?

时间:2015-09-25 19:39:13

标签: ruby variables

根据我的理解,Ruby类变量前面有@@,而实例变量前面有@。但是,如果他们在一个类体内被定义而没有先于任何东西,这意味着什么呢?

class MyClass
  some_var = 'hello'
end

在这种情况下some_var会引用什么?

1 个答案:

答案 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!"永远不会被打印。