Rubin? Operator
In Ruby die ? Operator ist ternärer Operator. Es wird als Abkürzung für eine if… sonst. Die Syntax ist wie folgt:
Zustand ? action_if_true: action_if_false
In diesem Fall wird die Bedingung entweder als wahr oder falsch bewertet. Wenn die Bedingung wahr ist, wird der Ausdruck vor der: ausgeführt:. Ansonsten wird der Ausdruck nach dem: ausgeführt:.
Wir können dies demonstrieren, indem wir ein Beispiel verwenden, wie unten gezeigt:
x = 5
setzt x> 0 ? "positiv negativ"
In diesem Fall testet der Code, ob der Wert von x größer als 0 ist. Wenn wahr, druckt der Block positiv aus. Andernfalls druckt es negativ aus.
IRB (Haupt): 002: 0> setzen x> 0 aus ? "positiv negativ"
positiv
=> nil
Der gleiche Fall gilt, wenn der Wert wie gezeigt negativ ist:
IRB (Haupt): 003: 0> x = -5
IRB (Haupt): 004: 0> setzt x> 0 aus ? "positiv negativ"
Negativ
=> nil
Sie können auch mehrere Bedingungen mit dem anketten ? Operator wie im folgenden Beispiel gezeigt:
x = 5
setzt x> 0 ? "positiv": x == 0 ? "Zero": "Negativ"
In diesem Fall testet die Abfrage den Wert von x gegen drei Bedingungen. Wenn der Wert größer als 0 ist, druckt der Code positiv aus. Wenn der Wert gleich Null ist, druckt der Code die Zeichenfolge Null aus. Und schließlich wird der Code „negativ drucken.”
Wir können auch das ternäre verwenden ? Operator in einer Methode und Variablennamen. Dies wird als „sicherer Navigationsoperator“ oder & & & & & & honorisch bezeichnet. Operator und es wird verwendet, um zu überprüfen, ob der Empfänger des Methodenaufrufs vor dem Aufruf der Methode nicht nil ist.
x = "Hallo"
X&.Upross # Hallo
y = nil
y &.oben # nil
Wir können den ternären Operator auch verwenden, um Wert wie nachstehend gezeigt zuzuweisen:
x = 5
y = x> 0 ? 1: -1
In diesem Fall hält y den Wert von 1.
Abschluss
Dies deckte die Grundlagen der Zusammenarbeit mit dem Ruby Ternary Operator ab, um verschiedene Operationen auszuführen. Es ist erwähnenswert, dass der ternäre Operator eine geringere Vorrang. Daher müssen Sie möglicherweise Klammern verwenden, um sicherzustellen, dass die Ausdrücke in der beabsichtigten Reihenfolge bewertet werden.
Obwohl der ternäre Operator für schnell eine bedingte Anweisung geeignet ist, bietet er keine gute Code -Lesbarkeit. Daher empfehlen wir die Verwendung des traditionellen wenn… sonst blockieren, wo nötig.