85

这是一个简单的,我希望。在以下示例中,如何检查是否已定义常量?

#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)
4

3 回答 3

144
CONST = 2 unless defined? CONST

有关出色操作员的更多信息,请参见此处defined?

PS而且在未来我猜你会想要var ||= 1而不是var = var||1.

于 2012-04-16T10:01:27.030 回答
27

常量定义?API

pry> User.const_defined?("PER_PAGE")
=> true
pry> User.const_defined?("PER_PAGE123")
=> false
于 2015-08-03T08:39:01.967 回答
4
CONST ||= :default_value

以上在 ruby​​ 1.9.3 上对我有用,但在 1.8 上失败了……现在 1.8 已经很古老了。

于 2015-05-01T13:08:34.293 回答