Raku kurss / Padziļināti / Izpildes plūsma / given un
when
Diapazonu, tipu un nosacījumu salīdzināšana
when bloks ne tikai salīdzina vienlīdzību. Tas veic
gudro salīdzināšanu (smart match) starp tēmu un norādīto
vērtību, tāpēc jūs varat salīdzināt ar diapazoniem, tipiem un
nosacījumiem, ne tikai ar atsevišķām vērtībām.
Diapazoni
Diapazons atbilst, ja tēma ietilpst tajā. Tas padara
given/when par dabisku risinājumu skaitļu
grupēšanai joslās:
my $score = 75;
given $score {
when 90..100 { say 'A' }
when 80..89 { say 'B' }
when 70..79 { say 'C' }
default { say 'F' }
}Vērtība 75 ietilpst diapazonā 70..79, tāpēc
programma izdrukā:
CTipi
Tips atbilst, ja tēma ir šī tipa. Tas ļauj jums sazaroties atkarībā no tā, kāda veida vērtība jums ir:
my $value = 'Raku';
given $value {
when Int { say 'an integer' }
when Str { say 'a string' }
}Tā kā $value satur virkni, programma izdrukā:
a stringNosacījumi
Jūs varat arī tieši izmantot salīdzinājumu. when
iekšienē tēma ir pieejama kā $_, tāpēc nosacījums,
piemēram, $_ < 0, atbilst, ja tas ir patiess:
my $n = -7;
given $n {
when $_ < 0 { say 'negative' }
when 0 { say 'zero' }
default { say 'positive' }
}Šeit pirmais when atbilst, un programma izdrukā:
negativePrakse
Jūs gaida 1 viktorīna par šī temata saturu.
Kursa navigācija
← given un
when | Viktorīna —
when →
💪 Vai arī dodieties tieši uz šīs sadaļas
vingrinājumiem.