Raku kurss / Objekti, ievade/izvade un izņēmumi / Klases un objekti
Apakšprogrammas un metodes
Tagad jums ir divi veidi, kā iepakot kādu uzvedību: apakšprogramma un metode. Tās izskatās līdzīgi, taču tiek lietotas dažādi.
Apakšprogramma stāv pati par sevi. Jūs to izsaucat pēc nosaukuma un padodat tai visu vajadzīgo kā argumentus:
sub area-of($radius) {
π * $radius * $radius;
}
say area-of(2); # 12.566370614359172Metode pieder klasei, un to izsauc uz objekta ar punktu. Tā var
izmantot objekta paša datus caur self un atribūtu piekļuves
metodēm, tāpēc šos datus jums nav jāpadod:
class Circle {
has $.radius;
method area {
π * $.radius * $.radius;
}
}
say Circle.new(radius => 2).area; # 12.566370614359172Abas aprēķina to pašu skaitli. Atšķirība ir tur, no kurienes nāk dati: apakšprogramma rādiusu saņem kā argumentu, bet metode to nolasa no objekta, uz kura tā tika izsaukta.
Kā īkšķa likums: izmantojiet apakšprogrammu patstāvīgai darbībai, kas vienkārši pārveido savus argumentus, un metodi tad, kad uzvedība dabiski pieder objektam un strādā ar šī objekta paša stāvokli. Klasei specifiskām, bet vispārīgām rutīnām izmantojiet klases metodes.
Prakse
Jūs gaida 1 viktorīna par šī temata saturu.
Vingrinājumi
Šajā sadaļā ir 2 vingrinājumi. Pirms ķerieties pie vingrinājumiem, izlasiet visus šīs sadaļas tematus.
Kursa navigācija
← Viktorīna — Klases metodes | Trīskāršošana kā apakšprogramma →