“常量”这个词有两个含义吗?

时间:2018-06-11 21:57:31

标签: ruby-on-rails

今天我了解了ruby constantize方法,当在字符串上调用时,它会查找具有相同名称的任何类或模块,并将其设置为该类或模块。

我对'常数'这个词的理解一直是'一个变量,一旦你初始化它就无法改变。'是否存在“常量”的另一个定义,即“一个类或一个模块?”

还是我完全误解了constantize

1 个答案:

答案 0 :(得分:1)

在Ruby中,以大写字母开头的东西是常量。它们可能不会在动态代码中分配,例如在方法内部,可能会被调用两次。 (无论如何,当这样的代码评估两次时,你会得到一个令人讨厌的警告,例如由于急切load ... ...

所以class Foo指定一个常量Foo,其值是一个类。