¿Se pueden usar los atributos nativos como destino de enlace en los parámetros?

8

De acuerdo con la lista de verificación 6.d (versión actual) , pueden hacerlo .

Sin embargo,

class Foo { 
    has num $.numillo;
    submethod BUILD( :$numillo = 3.5 ) {}
};
my $foo = Foo.new;
say $foo.raku; # OUTPUT:  «Foo.new(numillo => 0e0)␤»  

El atributo no parece ser enlazable, o al menos no obtiene un valor asignado. ¿Me estoy perdiendo de algo?

jjmerelo
fuente

Respuestas:

11

¡Solo está asignando un valor a un parámetro con nombre en BUILD, no al atributo!

submethod BUILD( :$!numillo = 3.5e0 ) {}

debería arreglar eso (tenga en cuenta el ! en la firma). Tenga en cuenta también que no3.5 es un , tendría que hacerlo uno agregando .nume0

Elizabeth Mattijsen
fuente