Wenn ich folgendes habe:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Gibt es eine Möglichkeit, mit zuzugreifen, Foo::CONSTANT_NAME
oder muss ich eine Klassenmethode erstellen, um auf den Wert zuzugreifen?
Wenn ich folgendes habe:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
...
end
Gibt es eine Möglichkeit, mit zuzugreifen, Foo::CONSTANT_NAME
oder muss ich eine Klassenmethode erstellen, um auf den Wert zuzugreifen?
Antworten:
Was Sie gepostet haben, sollte perfekt funktionieren:
class Foo
CONSTANT_NAME = ["a", "b", "c"]
end
Foo::CONSTANT_NAME
# => ["a", "b", "c"]
CONSTANT_NAME = ["a", "b", "c"].freeze
::
und .
;)
Wenn Sie in Ihrer Klasse zusätzlichen Code schreiben, der die Konstante enthält, können Sie ihn wie einen globalen behandeln.
class Foo
MY_CONSTANT = "hello"
def bar
MY_CONSTANT
end
end
Foo.new.bar #=> hello
Wenn Sie auf die Konstante außerhalb der Klasse zugreifen, stellen Sie ihr den Klassennamen voran, gefolgt von zwei Doppelpunkten
Foo::MY_CONSTANT #=> hello
Gibt es eine Möglichkeit, darauf zuzugreifen
Foo::CONSTANT_NAME
?
Ja da ist:
Foo::CONSTANT_NAME