kolmekordne (või tinglik) hindab operaator avaldust ja tagastab ühe väärtuse, kui see on tõene, ja teise väärtuse, kui see on vale. See on natuke nagu otsetee, kompaktne lause.
Rubiini omad kolmekomponendilisel operaatoril on oma kasutusviisid, kuid see on ka pisut vastuoluline.
Ternaaroperaatori näide
Vaatame seda näidet:
Siin kasutatakse kahe stringi vahel valimiseks tingimuslikku operaatorit. Kogu operaatori väljend on kõik, sealhulgas tingimuslik, küsimärk, kaks stringi ja koolon. Selle väljendi üldine vorming on järgmine: tinglik? õige Vale.
Kui tingimuslause on tõene, siis hindab operaator tõelise avaldisena. Muidu hinnatakse seda valeväljendina. Selles näites on see sulgudes, nii et see ei häiri teda ümbritsevaid stringi liitmise operaatoreid.
Teisiti öeldes on tingimuslik operaator nagu kui avaldus. Mäleta seda kui avaldused aastal Ruby hinnake ploki viimase väärtuseni, mis käivitatakse. Seega võiksite eelmise näite ümber kirjutada nii:
See kood on funktsionaalselt samaväärne ja võib-olla natuke lihtsamini mõistetav. Kui
i on suurem kui 10, kui avaldus ise hindab stringi "suurem kui" või hindab stringi "väiksemaks kui või võrdne. "See on sama asi, mida teeb kolmikute operaator, ainult kolmekomponendiline operaator on rohkem kompaktne.Kasutused ternaaroperaatori jaoks
Mis kasu on kolmekomponendilisel operaatoril? Sellel on kasutusi, kuid neid pole palju ja ilma selleta saaksite hästi hakkama.
Seda kasutatakse tavaliselt selliste väärtuste kingamiseks, kus tingimuslikud tingimused oleksid liiga mahukad. Seda kasutatakse ka muutuva määramise korral, et kiiresti valida kahe väärtuse vahel.
Siin on kaks tavalist kasutusjuhtu, mida näete kolmekomponendilise operaatori puhul:
Võib-olla olete märganud, et see näeb üsna ebaühtlane välja. Keerukad väljendid ei kuulu Ruby lihtsalt ühele reale - need on tavaliselt lõhestatud ja hõlpsamini loetavad. Kuid seda operaatorit näete ja seda saab tõhusalt kasutada ilma käest ilma.
Järgida tuleb ühte reeglit: kui kasutate seda operaatorit kahe tingimuse vahel kahe väärtuse vahel valimiseks, on seda OK kasutada. Kui teete midagi keerukamat, peaksite tõenäoliselt kasutama nuppu kui avaldus selle asemel.