Dies ist eine einfache, hoffe ich. Wie überprüfe ich im folgenden Beispiel, ob bereits eine Konstante definiert ist?
#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)
const_defined?
aber es funktioniert nicht für mich; nicht sicher warum.const_defined?
ist eine Methode derModule
Klasse und zeigt an, ob die Konstante in diesem Modul und seinen Vorfahren (optional) definiert ist. Überprüfen Sie die Dokumente für einige Beispiele - ruby-doc.org/core-1.9.3/Module.html#method-i-const_defined-3Fconst_defined? API
quelle
Das obige funktioniert für mich auf Ruby 1.9.3, schlägt aber auf 1.8 fehl ... nun, 1.8 ist jetzt uralt.
quelle