Die ternäre (oder bedingt) Der Operator wertet einen Ausdruck aus und gibt einen Wert zurück, wenn er wahr ist, und einen anderen Wert, wenn er falsch ist. Es ist ein bisschen wie eine kurze, kompakte if-Anweisung.
Rubys ternärer Operator hat seine Verwendung, ist aber auch ein bisschen umstritten.
Schauen wir uns dieses Beispiel an:
Hier wird der bedingte Operator verwendet, um zwischen zwei Zeichenfolgen auszuwählen. Der gesamte Operatorausdruck ist alles, einschließlich der Bedingung, des Fragezeichens, zweier Zeichenfolgen und des Doppelpunkts. Das allgemeine Format dieses Ausdrucks lautet wie folgt: bedingt ? wahr falsch.
Wenn der bedingte Ausdruck wahr ist, wird der Operator als wahrer Ausdruck ausgewertet. Andernfalls wird es als falscher Ausdruck ausgewertet. In diesem Beispiel steht es in Klammern, sodass die Zeichenfolgenverkettungsoperatoren, die es umgeben, nicht beeinträchtigt werden.
Anders ausgedrückt ist der bedingte Operator wie ein wenn Erklärung. Erinnere dich daran wenn Anweisungen in Ruby werden bis zum letzten Wert im Block ausgewertet, der ausgeführt wird. Sie könnten das vorherige Beispiel also wie folgt umschreiben:
Dieser Code ist funktional äquivalent und vielleicht ein bisschen einfacher zu verstehen. Wenn ich ist größer als 10, die wenn Die Anweisung selbst wird als Zeichenfolge "größer als" oder als Zeichenfolge "kleiner als oder gleich" ausgewertet. Dies ist dasselbe, was der ternäre Operator tut, nur der ternäre Operator ist kompakter.
Welchen Nutzen hat der ternäre Operator? Es hat Verwendung, aber es gibt nicht viele, und Sie könnten ohne es gut auskommen.
Es wird normalerweise verwendet, um in Werten, in denen Bedingungen zu sperrig wären, einen Schuhlöffel zu tragen. Es wird auch bei der Variablenzuweisung verwendet, um schnell zwischen zwei Werten zu wählen.
Hier sind zwei typische Anwendungsfälle für den ternären Operator:
Sie haben vielleicht bemerkt, dass dies ziemlich unruby aussieht. Komplexe Ausdrücke gehören in Ruby einfach nicht in eine Zeile - sie sind normalerweise aufgeteilt und einfacher zu lesen. Dieser Operator wird jedoch angezeigt und kann effektiv verwendet werden, ohne dass er außer Kontrolle gerät.
Eine zu befolgende Regel lautet: Wenn Sie diesen Operator verwenden, um mit einer einfachen Bedingung zwischen zwei Werten zu wählen, ist die Verwendung in Ordnung. Wenn Sie etwas komplexeres tun, sollten Sie wahrscheinlich eine verwenden wenn Aussage statt.