Was bedeutet der folgende Code in Ruby?
||=
Gibt es eine Bedeutung oder einen Grund für die Syntax?
Was bedeutet der folgende Code in Ruby?
||=
Gibt es eine Bedeutung oder einen Grund für die Syntax?
Angenommen, a = 2
y b = 3
DANN, a ||= b
wird zu a
Wert, d.h. 2
.
Wenn a zu einem Wert ausgewertet wird, der nicht zu false
ou nil
.. Deshalb ist es ll
nicht bewerten b
Wert.
Nehmen wir nun an a = nil
y b = 3
.
Dann a ||= b
wird zu 3
d.h. b
Wert.
Zunächst wird versucht, den Wert von a auszuwerten, was zu nil
.. so bewertete er b
Wert.
Das beste Beispiel, das in ror app verwendet wird, ist :
#To get currently logged in iser
def current_user
@current_user ||= User.find_by_id(session[:user_id])
end
# Make current_user available in templates as a helper
helper_method :current_user
Wo, User.find_by_id(session[:user_id])
wird nur dann ausgelöst, wenn @current_user
vorher nicht initialisiert wird.
A ||= b
Bedeutet, dass, wenn ein Wert in 'a' vorhanden ist und Sie ihn nicht ändern wollen, dieser Wert weiter verwendet wird; wenn 'a' keinen Wert hat, verwenden Sie den Wert von 'b'.
Einfache Worte: Wenn die linke Seite nicht null ist, zeige auf den vorhandenen Wert, ansonsten zeige auf den Wert auf der rechten Seite.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.