Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Klasoj kaj objektoj / Klasoj
Tipobjektoj kaj ekzempleroj
Kiam vi skribas klasan nomon kiel Dog, vi referencas la
tipobjekton de la klaso. La tipobjekto reprezentas la tipon
mem, ne iun apartan objekton de tiu tipo. Ekzemplero, kreita
per new, estas efektiva objekto.
Raku povas distingi ilin. La metodo defined redonas
False por tipobjekto kaj True por
ekzemplero:
class Dog {
}
say Dog.defined; # False
say Dog.new.defined; # TrueTipobjekto estas konsiderata nedifinita, ĉar ĝi tenas neniujn konkretajn datumojn — ĝi estas nur la priskribo de tipo. Ekzemplero estas difinita: ĝi estas vera objekto.
Ambaŭ raportas la saman tipon per WHAT, kiun vi
renkontis en la sekcio pri
ujoj:
class Dog {
}
say Dog.WHAT; # (Dog)
say Dog.new.WHAT; # (Dog)La krampoj ĉirkaŭ (Dog) estas la maniero de Raku montri
tipon. Do Dog kaj Dog.new kunhavas la tipon
Dog; la diferenco estas, ke unu estas la tipo mem, kaj la
alia estas objekto de tiu tipo.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Klasoj | Kvizo — Klasoj →
💪 Aŭ iru rekte al la
ekzercoj de ĉi tiu sekcio.