Kaj je ternarni ali pogojni izvajalec v Rubyju?

The ternarček (ali pogojno) operator bo ocenil izraz in vrnil eno vrednost, če je res, in drugo vrednost, če je napačna. Je malo kot kratka, kompaktna izjava.

Ruby's ternarni operater ima svoje namene, vendar je tudi nekoliko sporen.

Primer ternarnega operaterja

Poglejmo ta primer:

Tu se pogojni operator uporablja za izbiro med dvema nizoma. Celoten izraz operaterja je vse, vključno s pogojnim, vprašalnim znakom, dvema strunama in dvopičjem. Splošna oblika tega izraza je naslednja: pogojno? pravilno napačno.

Če je pogojni izraz resničen, bo operator ocenil kot pravi izraz. V nasprotnem primeru bo ocenjen kot lažni izraz. V tem primeru je v oklepajih, zato ne posega v operaterje povezovanja nizov, ki ga obkrožajo.

Povedano drugače, je pogojni operator podoben an če izjava. Zapomni si to če izjave v Ruby ocenite na zadnjo vrednost v bloku, ki se izvrši. Torej, lahko prej napišete prejšnji primer:

Ta koda je funkcionalno enakovredna in morda nekoliko lažja za razumevanje. Če jaz je večji od 10,

instagram viewer
če bo sam stavek ocenil niz "večji od" ali pa nizu manj kot ali enako. "To je isto, kar počne ternarni operater, le ternarni operater je več kompakten.

Uporabe za Ternarnega izvajalca

Kakšne koristi ima trojni operater? Ima koristi, vendar jih ni veliko, in brez tega bi se lahko dobro razumeli.

Običajno se uporablja za čevlje v vrednostih, kjer bi pogojni pogoji bili preveč obsežni. Uporablja se tudi pri dodelitvi spremenljivk za hitro izbiranje med dvema vrednostima.

Tu sta dva tipična primera uporabe, ki jih boste videli pri ternarnem operaterju:

Morda ste opazili, da to izgleda precej ne-Ruby. Kompleksni izrazi v Rubyju ne spadajo v eno vrstico - ponavadi je razdvojena in lažja za branje. Vendar boste videli tega operaterja in ga je mogoče učinkovito uporabljati, ne da bi vam šli iz rok.

Eno pravilo, ki ga je treba upoštevati, je, da če uporabljate ta operater za izbiro med dvema vrednostma s preprostim pogojnim, je v redu, da uporabite. Če delate kaj bolj zapletenega, bi verjetno morali uporabiti če namesto tega.