Kurso de Raku / Progresinta / Regofluo / given kaj
when
Kongruado de intervaloj, tipoj kaj kondiĉoj
Bloko when ne nur komparas por egaleco. Ĝi faras
saĝan kongruadon inter la temo kaj la valoro, kiun vi donas al
ĝi, do vi povas kongrui kun intervaloj, tipoj kaj kondiĉoj, ne nur kun
unuopaj valoroj.
Intervaloj
Intervalo kongruas, kiam la temo falas ene de ĝi. Tio faras
given/when natura elekto por grupigi nombrojn
en bendojn:
my $score = 75;
given $score {
when 90..100 { say 'A' }
when 80..89 { say 'B' }
when 70..79 { say 'C' }
default { say 'F' }
}La valoro 75 falas en la intervalon 70..79,
do la programo presas:
CTipoj
Tipo kongruas, kiam la temo estas de tiu tipo. Tio permesas al vi branĉi laŭ tio, kian valoron vi havas:
my $value = 'Raku';
given $value {
when Int { say 'an integer' }
when Str { say 'a string' }
}Ĉar $value enhavas ĉenon, la programo presas:
a stringKondiĉoj
Vi ankaŭ povas uzi komparon rekte. Ene de la when la
temo disponeblas kiel $_, do kondiĉo kiel
$_ < 0 kongruas, kiam ĝi estas vera:
my $n = -7;
given $n {
when $_ < 0 { say 'negative' }
when 0 { say 'zero' }
default { say 'positive' }
}Ĉi tie la unua when kongruas, kaj la programo
presas:
negativePraktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← given kaj
when | Kvizo —
when →
💪 Aŭ iru rekte al la ekzercoj de ĉi tiu
sekcio.