Kako uporabiti izjavo primera / stikala v Rubyju

click fraud protection

V večini računalniški jeziki, primer ali pogojno (znano tudi kot stikalo) stavek primerja vrednost spremenljivke z vrednostjo več konstant ali dobesednih elementov in izvede prvo pot z ustreznim primerom. V Ruby, je nekoliko bolj prilagodljiv (in zmogljiv).

Namesto preprostega preizkusa enakosti se uporablja operater enakosti primerov, ki odpira vrata številnim novim uporabam.

Vendar obstajajo nekatere razlike od drugih jezikov. V C, stavek preklopa je neke vrste nadomestek za vrsto če in goto izjave. Zadeve so tehnično označene in izjava o preklopu bo šel do ustrezne oznake. To kaže na vedenje, imenovano "prepad", saj se izvršitev ne ustavi, ko doseže drugo oznako.

Temu se običajno izognemo z uporabo preloma izjave, vendar je prepad včasih nameren. Na drugi strani je zadeva Ruby lahko obravnavana kot okrajšava za niz če izjave. Ni prepada, izvršen bo le prvi primer.

Osnovna oblika izjave o zadevi

Osnovna oblika izjave primera je naslednja.

Kot lahko vidite, je to strukturirano nekako kot pogojna izjava if / else if / else. Ime (ki mu bomo rekli

instagram viewer
vrednost), v tem primeru vneseno s tipkovnice, primerjamo z vsakim primerom iz kdaj klavzule (tj. primerov), in prvi, ko bo izveden blok z ustreznim primerom. Če se nobena od njih ne ujema, je drugače blok bo izveden.

Kar je tukaj zanimivo, je kako vrednost se primerja z vsakim primerom. Kot je navedeno zgoraj, v C ++in drugih jezikih, podobnih C, je uporabljena preprosta primerjava vrednosti. V Rubyju se uporablja operator enakosti primerov.

Ne pozabite, da je pomembna vrsta leve strani upravljavca enakosti primerov, primeri pa so vedno na levi strani. Torej, za vsakega kdaj klavzulo, bo ocenila Ruby vrednost primera dokler ne najde ujemanja.

Če bi prispevali Bob, Bi Ruby najprej ocenila "Alice" "Bob", kar bi bilo od takrat napačno Vrvica# je opredeljen kot primerjava strun. Naslednji, / evidenceqrzSense.+/i "Bob" bi bila usmrčena, kar je od takrat napačno Bob se ne začne z Q, R ali Z.

Ker se noben od primerov ne ujema, bo Ruby nato izvršil še določbo.

Kako tip prihaja v igro

Običajna uporaba stavka je določiti vrsto vrednosti in narediti nekaj drugačnega, odvisno od vrste. Čeprav to prekine običajno Rubyjevo tipkanje rac, je včasih treba urediti stvari.

To deluje z uporabo Št. Razreda (tehnično gledano Modul št.) operater, ki preizkuša, če je desna stran je? stran leve roke.

Sintaksa je preprosta in elegantna:

Še ena možna oblika

Če je vrednost Če izpustimo, stavek zadeve deluje nekoliko drugače: deluje skoraj točno kot izjava if / else if / else. Prednosti uporabe izjave primera nadče Izjava je v tem primeru zgolj kozmetična.

Bolj kompaktna sintaksa

Obstajajo časi, ko obstaja veliko število majhnih kdaj klavzule. Tak primer primera zlahka postane prevelik, da bi se lahko prilegal na zaslon. V tem primeru (nobena punkcija ni namenjena), lahko uporabite torej ključno besedo za postavitev telesa kdaj klavzula v isti vrstici.

Medtem ko je to nekaj zelo gosto kodo, dokler je vsaka kdaj klavzula je zelo podobna, dejansko postane več berljiv.

Kdaj bi morali uporabljati eno-vrstice in več vrstice, ko so določene določbe, je stvar sloga. Vendar mešanje obeh ni priporočljivo - izjava primera mora slediti vzorcu, da bo čim bolj berljiva.

Dodelitev primera

Kot če izjave, izjave primerov ocenjujejo na zadnjo izjavo v kdaj klavzula. Z drugimi besedami, lahko jih uporabimo pri nalogah za zagotavljanje neke vrste tabele. Vendar ne pozabite, da so stavki primerov veliko močnejši od preprostih nizov ali iskalnih poizvedb. Za takšno tabelo ni nujno, da se v pomnilniku uporabljajo literali kdaj klavzule.

Če ni klavzule in če ni nobene druge, potem bo izjava primera ocenjena na nič.

instagram story viewer