Cursus Raku / Objecten, in- en uitvoer en excepties / Klassen en objecten / Attributen / Exercises / Een boek

Oplossing: Een boek

Hier is een mogelijke oplossing voor de taak.

Code

class Book {
    has Str $.title;
    has Str $.author;
}

my $b = Book.new(title => 'Raku', author => 'Larry');
say "{$b.title} by {$b.author}";

🦋 Je kunt de broncode vinden in het bestand book.raku.

Uitvoer

Raku by Larry

Opmerkingen

  1. Elk van has $.title en has $.author declareert een attribuut samen met een leesaccessor.

  2. Beide accessors worden binnen één string met dubbele aanhalingstekens gebruikt. Elk staat tussen accolades — {$b.title} en {$b.author} — wat de vorm voor code-interpolatie is: wat er tussen de accolades staat wordt uitgevoerd en het resultaat ingevoegd, dus de accessors worden aangeroepen en hun waarden in de string geplaatst.

  3. Beide attributen zijn strings, dus het is verstandig ze ook zo te declareren.

Cursusnavigatie

Een boek   |   Een wijzigbaar label