Raku kurss / Padziļināti / Operatori / Īpašības un pragmas 🆕
Iebūvētās īpašības
Īpašība tiek piemērota ar atslēgvārdu is uzreiz
pēc deklarācijas. Tā tiek izpildīta kompilēšanas laikā un maina kādu
fiksētu tās objekta īpašību. Raku nāk ar daudzām iebūvētām īpašībām;
dažas jūs jau esat izmantojuši.
Pēc noklusējuma apakšprogrammas parametri ir tikai
lasāmi — jūs nevarat tiem piešķirt vērtību apakšprogrammas
iekšienē. Īpašība is copy dod jums privātu, modificējamu
argumenta kopiju, kuru varat mainīt, neietekmējot izsaucēju:
sub greet($name is copy) {
$name = "dear $name";
say "Hello, $name!";
}
my $who = 'Anna';
greet($who); # Hello, dear Anna!
say $who; # Anna — the caller's own variable is untouchedĪpašība is rw iet tālāk: tā sasaista parametru ar
izsaucēja mainīgo, tāpēc izmaiņas apakšprogrammas iekšienē ir redzamas
ārpusē:
sub bump($n is rw) {
$n++;
}
my $x = 10;
bump($x);
say $x; # 11Bez kādas no šīm īpašībām $n++ radītu kompilēšanas laika
kļūdu, jo parametrs būtu tikai lasāms.
Vēl viena izplatīta īpašība nosaka noklusējuma vērtību:
my $port is default(8080);
say $port; # 8080Šeit is default piešķir mainīgajam vērtību, uz kuru
atgriezties. Katra iebūvētā īpašība — is rw,
is copy, is default un citas — pievieno vienu
konkrētu kompilēšanas laika uzvedību deklarācijai. Nākamā tēma parāda,
ka īpašības nav slēgta kopa: jūs varat definēt
savas.
Prakse
Jūs gaida 1 viktorīna par šī temata saturu.
Kursa navigācija
← Īpašības un pragmas 🆕 | Viktorīna — Īpašības →
💪 Vai arī dodieties tieši uz šīs sadaļas
vingrinājumiem.