Kuinka käyttää tapaus / vaihtolauseketta rubiinissa

click fraud protection

Useimmissa tietokonekielet, tapaus tai ehdollinen (tunnetaan myös nimellä vaihtaa) lauseessa verrataan muuttujan arvoa useiden vakioiden tai kirjaimien arvoon ja suoritetaan ensimmäinen polku vastaavalla tapauksella. Sisään Rubiini, se on vähän joustavampi (ja voimakas).

Suoritetun yksinkertaisen tasa-arvotestin sijasta käytetään tapaus-tasa-arvooperaattoria, joka avaa oven moniin uusiin käyttötarkoituksiin.

On kuitenkin joitain eroja muista kielistä. Sisään C, vaihtolauseke on eräänlainen korvaava sarja jos ja mennä lausuntoja. Kotelot ovat teknisesti tarroja ja vaihtaa lausunto menee vastaavaan etikettiin. Tämä osoittaa käyttäytymistä, jota kutsutaan "läpimenoksi", koska suorittaminen ei pysähdy, kun se saavuttaa toisen tarran.

Tätä yleensä vältetään käyttämällä katkaisulauseketta, mutta läpimurto on joskus tahallinen. Toisaalta Rubyn tapauslausetta voidaan pitää lyhenteenä sarjalle jos lausuntoja. Läpimurtoa ei ole, vain ensimmäinen vastaava tapaus suoritetaan.

Tapauslausuman perusmuoto

instagram viewer

Tapauslausuman perusmuoto on seuraava.

Kuten näette, tämä on rakenteeltaan jotain if / else if / else ehdollista lauseketta. Nimi (jota kutsumme arvo), tässä tapauksessa näppäimistöltä syötetty, verrataan jokaiseen kun lausekkeet (eli tapauksissa), ja ensimmäinen, kun lohko vastaavalla tapauksella suoritetaan. Jos yksikään niistä ei vastaa, muu lohko suoritetaan.

Mikä mielenkiintoista tässä on Miten arvoa verrataan jokaiseen tapaukseen. Kuten edellä mainittiin, vuonna C ++ja muut C-kaltaiset kielet, käytetään yksinkertaista arvovertailua. Rubyn tapauksessa käytetään tasa-arvooperaattoria.

Muista, että tapaus tasa-arvooperaattorin vasemmanpuoleinen tyyppi on tärkeä, ja tapaukset ovat aina vasemmanpuoleisia. Joten jokaiselle kun lauseke, Ruby arvioi tapauksen arvo kunnes se löytää ottelun.

Jos meidän pitäisi antaa tietoja Bob, Ruby arvioisi ensin "Alice" "Bob", mikä olisi väärä siitä lähtien string # määritellään merkkijonojen vertailuksi. Seuraava, /[qrz].+/i "Bob" teloitetaan, mikä on väärä siitä lähtien Bob ei ala Q, R tai Z.

Koska yksikään tapauksista ei täyttänyt toisiaan, Ruby suorittaa sitten muun lausekkeen.

Kuinka tyyppi tulee pelaamaan

Tapauslausekkeen yleinen käyttö on määrittää arvotyyppi ja tehdä jotain erilaista sen tyypistä riippuen. Vaikka tämä rikkoo Rubyn tavanomaisen ankan kirjoittamisen, on joskus tarpeen saada asiat saatu aikaan.

Tämä toimii käyttämällä luokka # (teknisesti Moduuli#) operaattori, joka testaa, onko oikea puoli on? vasemman käden puoli.

Syntaksi on yksinkertainen ja tyylikäs:

Toinen mahdollinen muoto

Jos arvo Kun jätetään pois, tapauslausunto toimii hiukan eri tavalla: se toimii melkein täsmälleen kuten if / else if / else -lause. Tapauslausunnon käytön edut verrattunajos lausunto, tässä tapauksessa, on vain kosmeettisia.

Kompaktisempi syntaksi

Toisinaan on olemassa suuri joukko pieniä kun lausekkeita. Tällainen tapauslausunto kasvaa helposti liian suureksi, jotta se mahtuu näytölle. Tässä tapauksessa (ei pun tarkoitettu), voit käyttää sitten avainsana laittaa ruumiin kun lause samalla rivillä.

Vaikka tämä tekee joustavasta koodista, niin kauan kuin kukin kun lauseke on hyvin samanlainen, siitä todella tulee lisää luettavissa.

Kun sinun pitäisi käyttää yksirivistä ja monirivistä, kun lauseet ovat sinun päälläsi, se on tyylin kysymys. Näiden kahden sekoittamista ei kuitenkaan suositella - tapauslausuman tulisi noudattaa mallia, jotta se olisi mahdollisimman luettavissa.

Tapausmääritys

Kuten lauseet, tapauslausekkeet arvioivat viimeisen lauseen kun lauseke. Toisin sanoen niitä voidaan käyttää tehtävissä eräänlaisen taulukon tarjoamiseen. Älä kuitenkaan unohda, että tapauslausekkeet ovat paljon tehokkaampia kuin yksinkertaiset ryhmä- tai hash-haut. Tällaisen taulukon ei tarvitse välttämättä käyttää kirjaimia kirjaimissa kun lausekkeita.

Jos lauseketta ei ole sovittu, eikä muuta lauseketta, tapauslausunto arvioi nolla.

instagram story viewer