Čo je ternárny alebo podmienený operátor v Ruby?

trojica (alebo podmieňovací) operátor vyhodnotí výraz a vráti jednu hodnotu, ak je pravdivá, a inú hodnotu, ak je nepravdivá. Je to trochu ako skratka, kompaktné vyjadrenie.

Ruby je ternárny operátor má svoje využitie, ale je tiež trochu kontroverzný.

Príklad ternárneho operátora

Pozrime sa na tento príklad:

Tu sa podmienený operátor používa na výber medzi dvoma reťazcami. Celý výraz operátora je všetko vrátane podmieneného, ​​otáznika, dvoch reťazcov a dvojbodky. Všeobecný formát tohto výrazu je nasledujúci: podmienený? pravda lož.

Ak je podmienený výraz pravdivý, operátor vyhodnotí ako skutočný výraz. V opačnom prípade sa vyhodnotí ako falošný výraz. V tomto príklade je to uvedené v zátvorkách, takže to nezasahuje do operátorov zreťazenia reťazcov, ktoré ho obklopujú.

Inými slovami, podmienený operátor je ako ak vyhlásenia. Zapamätaj si to ak Vyhlásenia v Ruby vyhodnotiť na poslednú hodnotu v bloku, ktorý sa vykoná. Mohli by ste prepísať predchádzajúci príklad takto:

Tento kód je funkčne ekvivalentný a možno trochu ľahšie pochopiteľný. ak

instagram viewer
ja je väčšia ako 10, ak samotný príkaz vyhodnotí do reťazca „väčší ako“ alebo vyhodnotí do reťazca „menší ako alebo rovná sa. “Toto je to isté, čo robí ternárny operátor, iba ternárny operátor je viac kompaktný.

Použitie pre ternárneho operátora

Aké spôsoby použitia má ternárny operátor? Má síce použitia, ale ich nie je veľa a bez nich by ste si mohli dobre vyjsť.

Zvyčajne sa používa na topánky v hodnotách, v ktorých by boli podmienky príliš objemné. Používa sa tiež pri prideľovaní premenných na rýchle výber medzi dvoma hodnotami.

Tu sú dva typické prípady použitia, ktoré uvidíte pre ternárneho operátora:

Možno ste si všimli, že to vyzerá celkom nevinne. Zložité výrazy v Ruby nepatria k jednému riadku - zvyčajne sú rozdelené a čitateľnejšie. Uvidíte však tohto operátora a dá sa efektívne používať bez toho, aby ste sa vymkli z rúk.

Jedným z pravidiel, ktoré treba dodržiavať, je to, že ak používate tento operátor na výber medzi dvoma hodnotami s jednoduchým podmienečným, je to OK. Ak robíte niečo zložitejšie, pravdepodobne by ste mali používať ak namiesto toho vyhlásenie.

instagram story viewer