我有一些类在我的 Rails 应用程序中作为装饰器实现,该应用程序位于 Ruby 1.8.7 上。我不断收到警告 - 警告:已经初始化常量 ABC
。这里 ABC 是常量的名称。
为了解决这个问题,我使用 const_defined?方法如本answer中建议的.
我的疑问是 - const_define?
是检查 ruby 中是否已定义类常量的正确方法吗?我清楚地看到它可以用来检查模块常量。
我发现 define?
方法也可以像 answer 中提到的那样使用。 。我尝试查找 define?
的文档,但根据迄今为止的搜索,我没有看到其文档的链接。
我不确定在两者中选择哪一个,因为目前我看不出两者之间有明显的区别。
有人可以建议在这种情况下最好使用哪种方法吗?为什么?
最佳答案
关键字已定义?
已记录here .
最好询问它是否是常量,如果它是常量很重要,则使用 const_define?
。如果您只关心它是否已定义,则使用关键字 define?
关于ruby - 检查 Ruby 类中是否已定义常量的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25608618/