web-dev-qa-db-ja.com

定数が既に定義されているかどうかを確認します

これは単純なものです、私は願っています。次の例で、定数が既に定義されているかどうかを確認するにはどうすればよいですか?

#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)
75
peter
CONST = 2 unless defined? CONST

すばらしいdefined?演算子の詳細については、 here を参照してください。

PS将来的には、var ||= 1ではなくvar = var||1が必要になると思います。

121
jibiel

const_defined?API

pry> User.const_defined?("PER_PAGE")
=> true
pry> User.const_defined?("PER_PAGE123")
=> false
20
rusllonrails
CONST ||= :default_value

上記はRuby 1.9.3で動作しますが、1.8では失敗します... 1.8は今では古くなっています。

4
akostadinov