Sintaxa operatorului ternar din Ruby

Iată un exemplu rapid de cod sursă Ruby, care arată cum am folosit operatorul ternar din Ruby într-o metodă care tipărește o înregistrare CSV pentru o clasă pe care am definit-o:

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

După cum puteți vedea din această metodă, fiecare linie folosește operatorul ternar pentru a lua următoarea decizie:

  1. Dacă lungimea câmpului dat este egală cu 0, folosiți prima instrucțiune printf.
  2. În caz contrar, folosiți a doua instrucțiune printf.

Poate că nu pare mult, dar asta este. Lucrul grozav este că este mult mai scurtă decât sintaxa echivalentă if/then și este încă foarte ușor de citit.

Dacă doriți mai multe informații despre operatorul ternar Ruby, nu ezitați să citiți mai departe.

Sintaxa generală a operatorului ternar

După cum puteți înțelege din exemplul anterior, sintaxa generală a operatorului ternar din Ruby arată astfel:

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

În exemplul meu anterior, primul meu test-expression arăta astfel:

last_name.length==0

și if-true-expression al său arăta astfel:

printf(",")

și if-false-expression al său arăta astfel:

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

Sperăm că demonstrarea sintaxei generale a operatorului ternar a ajutat ca codul meu anterior să fie puțin mai ușor de înțeles.

Un al doilea exemplu

Dacă doriți încă un exemplu al operatorului ternar, iată unul care folosește o comparație de test numeric, urmată de două instrucțiuni puts posibile, una care va fi executată dacă testul este evaluat la adevărat și alta care va fi executată dacă testul este evaluat la fals:

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

După cum ați putea ghici, acest segment de cod va imprima:

I can't drive 55!

(Care rezumă și obiceiurile mele de condus.)

Operatorul ternar este grozav. Îți poate scurta declarațiile if/then și, în același timp, îți păstrează codul Ruby lizibil.