Ruby / Rails常量行为

时间:2010-09-13 05:54:34

标签: ruby-on-rails ruby

我是Ruby新手(来自java背景),我想知道RoR应用程序和一般Ruby中常量的行为。

它们刚刚初始化一次,就像java静态变量一样吗?

我正在初始化一个相当大的哈希数组作为常量,所以我想确定我做得对吗?

感谢您的帮助。

module MyModule

  MY_CONST = [{...}, {...}, {...}, {...}, {...}, ...]

1 个答案:

答案 0 :(得分:2)

实际上并非如此。来自Programming Ruby指南的Variables and Constants部分:

...

Ruby常量也是对象的引用。首次分配常量时(通常在类或模块定义中)创建常量。 Ruby,与不太灵活的语言不同,允许您更改常量的值,但这会生成警告消息。

MY_CONST = 1
MY_CONST = 2   # generates a warning

产生

prog.rb:2: warning: already initialized constant MY_CONST