什么是在没有decorator @或@@的类定义中定义的变量?

时间:2011-11-30 06:08:05

标签: ruby class local-variables

在Ruby中,这样的代码是合法的:

class Aclass
  m = 1
end

但从语义上讲,m会是什么,以及它应该如何被访问?

2 个答案:

答案 0 :(得分:8)

m只是一个局部变量。它只能在类定义中访问。例如,它可以用于引导类,但不能从其他任何地方访问它。

例如:

class Aclass

  m=1
  puts "m is #{m}"

end

当您需要包含该类的文件时,该代码只会运行一次。这有点类似于Java的static initialisation blocks

答案 1 :(得分:2)

我不确定m的语义术语是什么,但它只是该类范围内的常规变量。您将无法在课堂外访问它(甚至在类中定义的方法中也没有。)