De Ruby ternaire operator syntax

Hier volgt een snel voorbeeld van wat Ruby broncode, die laat zien hoe ik Ruby’s ternaire operator heb gebruikt in een methode die een CSV record afdrukt voor een klasse die ik heb gedefinieerd:

def print_csv_record last_name.length==0 ? printf(",") : printf("\"%s\",", last_name) first_name.length==0 ? printf(",") : printf("\"%s\",", first_name) city.length==0 ? printf(",") : printf("\"%s\"", city) printf("\n")end

Zoals je in die methode kunt zien, gebruikt elke regel de ternaire operator om de volgende beslissing te nemen:

  1. Als de lengte van het gegeven veld gelijk is aan 0, gebruik dan het eerste printf statement.
  2. anders, gebruik het tweede printf statement.

Het lijkt misschien niet veel, maar dat is het wel. Het leuke is dat het veel korter is dan de equivalente if/then syntaxis, en het is nog steeds heel gemakkelijk te lezen.

Als je wat meer informatie over de Ruby ternaire operator wilt, voel je vrij om verder te lezen.

Algemene syntaxis van de ternaire operator

Zoals u uit het vorige voorbeeld kunt opmaken, ziet de algemene syntaxis voor Ruby’s ternaire operator er als volgt uit:

test-expression ? if-true-expression : if-false-expression

In mijn vorige voorbeeld zag mijn eerste test-expression er als volgt uit:

last_name.length==0

en zijn if-true-expression zag er zo uit:

printf(",")

en zijn if-false-expression zag er zo uit:

printf("\"%s\",", last_name)

Hopelijk heeft het demonstreren van de algemene syntaxis van de ternaire operator geholpen om mijn eerdere code een beetje begrijpelijker te maken.

Een tweede voorbeeld

Als u nog een voorbeeld van de ternaire operator wilt, is hier er een die een numerieke testvergelijking gebruikt, gevolgd door twee mogelijke puts statements, een die zal worden uitgevoerd als de test evalueert als waar, en een andere die zal worden uitgevoerd als de test evalueert als onwaar:

# set the speedspeed = 90# somewhere later in the program ...speed > 55 ? puts("I can't drive 55!") : puts("I'm a careful driver")

Zoals u wellicht kunt raden, zal dit segment van de code afdrukken:

I can't drive 55!

(Wat ook mijn rijgewoonten samenvat.)

De ternaire operator is cool. Het kan uw if/then verklaringen inkorten, en toch houdt het uw Ruby code leesbaar.