我已经在Ruby中编程了几个月了,我想知道什么时候使用常量而不是类变量,反之亦然.(我在Rails工作,考虑模型中的常量).
class Category TYPES = %w(listing event business).freeze end
要么
class Category @@types = %w(listing event business).freeze cattr_reader :types end
是否存在一种优于另一种情况的情况?或者只是品味/风格问题?
最重要的是,通过使用CONSTANT符号,您可以向读者说清楚.小写,冻结字符串给人的印象可能是可设置的,迫使某人回去阅读RDoc.
如果这些是您在源代码中定义的并且不想在代码执行期间更改的常量值,那么我建议使用常量.
如果计划在执行期间动态设置和/或更改这些值,则将类变量与getter和setter一起使用.
基本上,你可以这样说:如果你想要一些不变的东西,使用常量.如果你想要变量的东西,可以使用变量.看起来你的类型列表是常量,看它是一个冻结的数组,所以我想说在这种情况下使用常量是有意义的.