这是一个简单的问题,我希望。在下面的示例中,如何检查是否已定义常量?
#this works
var = var||1
puts var
var = var||2
puts var
#this doesn't
CONST = CONST||1
puts CONST
CONST = CONST||2
puts CONST
=> 1
1
uninitialized constant CONST (NameError)
pry> User.const_defined?("PER_PAGE")
=> true
pry> User.const_defined?("PER_PAGE123")
=> false
CONST ||= :default_value
以上内容适用于我的 Ruby 1.9.3,但在 1.8 上会失败... 嗯,1.8 现在已经过时了。
const_defined?
但它对我没用,不确定为什么。 - Jared Beckconst_defined?
是Module
类的一个方法,它可以告诉你常量是否在该模块及其祖先中定义(可选)。请查看文档以获取一些示例- http://www.ruby-doc.org/core-1.9.3/Module.html#method-i-const_defined-3F - jibiel