ich mich Dinge wie diese machen oft finden:Gibt es eine „&& Equals“ Operator in Ruby
do_something if x && x == y
In anderen Arbeiten, etwas tun, wenn x
nicht gleich Null ist, und es hat einen Wert von y
.
Es wäre schön, wenn ich so etwas tun könnte stattdessen:
do_something if x &&== y
Gibt es einen Operator, der dies tut?
Antworten auf Kommentare:
x == y
- Das Problem dabei ist, dass es Existenz nur Tests (nicht null), wenn der Wert von y
bekannt ist. Wenn y
selbst nil
ist, schlägt die Prüfung fehl. So könnten Sie am Ende tun:
y && x == y
x ||= y
- Dies würde den Wert von y
-x
zuweisen, wenn x
Null ist. Das ist nicht was ich suche. x &&= y
funktioniert nicht aus dem gleichen Grund - es ändert den Wert x
zu y
, wenn x
existiert.
Ein Beispiel: In meinem aktuellen Szenario möchte ich prüfen, ob ein Benutzer an eine Steuerung übergeben hat das Token mit ihnen verbunden sind, aber ich möchte auch, dass das Token, um sicherzustellen, zugewiesen wurde. Etwas wie:
do_something if user.token && user.token == params[:token]
wenn x einen Wert hat, bedeutet, dass es (x) existiert, so ist es nicht notwendig, denke ich. wegen der Notwendigkeit, gibt es keinen solchen Betreiber. – marmeladze
Angenommen, dass 'y' einen Wert hat, könnten Sie einfach' 'schreiben, wenn x == y' – Stefan
' x || = y' sollte funktionieren, nein? –