Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj / Atributoj
Leg- kaj skribeblaj atributoj
Defaŭlte, la atingilo kreita de has $.name estas
nur-legebla. La valoro estas pravalorizita en la konstruilo,
post kio vi povas legi la valoron sed ne ŝanĝi ĝin de ekstere de la
objekto. Atribui al ĝi estas eraro:
class Dog {
has $.name;
}
my $rex = Dog.new(name => 'Rex');
$rex.name = 'Max';Ĉi tio haltas kun:
Cannot modify an immutable Str (Rex)Por permesi, ke la valoro estu ŝanĝata tra la atingilo, marku la
atributon per la trajto is rw:
class Dog {
has $.name is rw;
}
my $rex = Dog.new(name => 'Rex');
$rex.name = 'Max';
say $rex.name; # MaxNun la atingilo redonas skribeblan ujon, do la atribuo funkcias kaj
la name de la objekto fariĝas Max.
Kursa navigado
← Atributoj | Defaŭltaj valoroj →
💪 Aŭ iru rekte al la
ekzercoj de ĉi tiu sekcio.