Kā lietot lietu / pārslēgšanas paziņojumu rubīnā

click fraud protection

Vairākumā datoru valodas, lieta vai nosacīta (pazīstama arī kā slēdzis) paziņojums salīdzina mainīgā vērtību ar vairāku konstantu vai burtiem un izpilda pirmo ceļu ar atbilstošo lietu. Iekšā Rubīns, tas ir nedaudz elastīgāks (un jaudīgāks).

Tā vietā, lai veiktu vienkāršu vienlīdzības pārbaudi, tiek izmantots gadījumu līdztiesības operators, paverot iespējas daudzām jaunām vajadzībām.

Tomēr ir dažas atšķirības no citām valodām. Iekšā C, pārejas paziņojums ir sava veida aizstājējs virknei ja un goto paziņojumi. Korpusi ir tehniski marķēti, un slēdzis paziņojums nonāks pie atbilstošās etiķetes. Tas parāda uzvedību, ko sauc par "izkrišanu", jo izpilde neapstājas, kad tā sasniedz citu etiķeti.

Parasti no tā izvairās, izmantojot pārtraukuma paziņojumu, taču izkrišana dažreiz ir tīša. Turpretī lietas izklāsts lietā Ruby var tikt uzskatīts par saīsinājumu virknei ja paziņojumi. Nav izkrišanas, tiks izpildīts tikai pirmais saskaņošanas gadījums.

Pamatinformācija lietas izklāstam

Lietas paziņojuma pamatforma ir šāda.

instagram viewer

Kā redzat, tas ir strukturēts kā if / else if / else nosacīts paziņojums. Nosaukums (ko mēs sauksim par vērtību), šajā gadījumā ievadot no tastatūras, salīdzina ar katru gadījumu no kad klauzulas (t.i. gadījumi), un pirmais, kad tiks izpildīts bloks ar atbilstošo lietu. Ja neviens no tiem neatbilst, cits bloks tiks izpildīts.

Kas šeit ir interesants vērtību salīdzina ar katru no gadījumiem. Kā minēts iepriekš, C ++un citās C veida valodās, tiek izmantots vienkāršs vērtību salīdzinājums. Rubīnā tiek izmantots lietu vienlīdzības operators.

Atcerieties, ka lietu vienlīdzības operatora kreisās puses tips ir svarīgs, un gadījumi vienmēr ir kreisās puses. Tātad katram kad klauzulu, Rubīns novērtēs lietas vērtība līdz tā atrod sakritību.

Ja mēs ievadītu informāciju Bobs, Vispirms novērtētu Rubīns "Alise" "Bobs", kas būtu nepatiess kopš Stīgas Nr. tiek definēts kā virkņu salīdzinājums. Nākamais, /[qrz ..+/i "Bobs" tiktu izpildīts, kas kopš tā laika ir nepatiess Bobs nesākas ar Q, R vai Z.

Tā kā neviens no gadījumiem neatbilda, Ruby izpildīs klauzulu “cits”.

Kā tips stājas spēlē

Parasti lietas izklāsts ir vērtības veida noteikšana un atkarībā no tā veida darīt kaut ko atšķirīgu. Lai gan tas pārtrauc Rubīna parasto pīļu rakstīšanu, dažreiz tas ir jādara.

Tas darbojas, izmantojot Klase # (tehniski Modulis Nr.) operators, kurš pārbauda, ​​vai ir labā puse ir? kreisā puse.

Sintakse ir vienkārša un eleganta:

Vēl viena iespējamā forma

Ja vērtību tiek izlaists, gadījuma paziņojums darbojas mazliet savādāk: tas darbojas gandrīz tieši tāpat kā if / else if / else paziņojums. Lietas paziņojuma izmantošanas priekšrocības salīdzinājumā arja paziņojums šajā gadījumā ir tikai kosmētisks.

Kompaktāka sintakse

Ir reizes, kad ir liels skaits mazu kad klauzulas. Šāds lietas izklāsts viegli kļūst pārāk liels, lai ietilptu ekrānā. Ja tas tā ir (nav paredzēts pun), varat izmantot tad atslēgas vārds, lai ievietotu kad klauzula tajā pašā rindā.

Lai gan tas rada ļoti blīvu kodu, ja vien katrs kad klauzula ir ļoti līdzīga, tā faktiski kļūst vairāk lasāms.

Kad jums ir jāizmanto vienas līnijas un vairāku līniju līnijas, kad klauzulas ir atkarīgas no jums, tas ir stila jautājums. Tomēr abu sajaukšana nav ieteicama - gadījuma izklāstam vajadzētu būt pēc modeļa, lai tas būtu pēc iespējas lasāmāks.

Lieta piešķiršana

Tāpat kā apgalvojumi, gadījumu paziņojumi tiek vērtēti līdz pēdējam paziņojumā kad klauzula. Citiem vārdiem sakot, tos var izmantot uzdevumos, lai nodrošinātu sava veida tabulu. Tomēr neaizmirstiet, ka gadījumu paziņojumi ir daudz jaudīgāki nekā vienkārši masīva vai hash-lookups. Šādā tabulā nav obligāti jāizmanto burtus kad klauzulas.

Ja nav atbilstības kad klauzula un nav cita klauzula, tad lietas izklāsts tiks novērtēts līdz nulle.

instagram story viewer