Curso de Raku / Objetos, entrada/salida y excepciones / Clases y objetos / Atributos / Exercises / Un libro
Solución: Un libro
Aquí tienes una posible solución para la tarea.
Código
class Book {
has Str $.title;
has Str $.author;
}
my $b = Book.new(title => 'Raku', author => 'Larry');
say "{$b.title} by {$b.author}";🦋 Puedes encontrar el código fuente en el archivo book.raku.
Salida
Raku by LarryComentarios
Cada una de las declaraciones
has $.titleyhas $.authordeclara un atributo junto con un accesor de lectura.Ambos accesores se usan dentro de una misma cadena entre comillas dobles. Cada uno va envuelto en llaves —
{$b.title}y{$b.author}—, que es la forma de interpolar código: lo que hay entre las llaves se ejecuta y su resultado se inserta, de modo que los accesores se llaman y sus valores se colocan en la cadena.Ambos atributos son cadenas, así que conviene declararlos como tales.