我是Ruby新手(来自java背景),我想知道RoR应用程序和一般Ruby中常量的行为。
它们刚刚初始化一次,就像java静态变量一样吗?
我正在初始化一个相当大的哈希数组作为常量,所以我想确定我做得对吗?
感谢您的帮助。
module MyModule
MY_CONST = [{...}, {...}, {...}, {...}, {...}, ...]
答案 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