Os atributos nativos podem ser usados ​​como destino de ligação nos parâmetros?


8

De acordo com a lista de verificação 6.d (versão atual) , eles podem.

Contudo,

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

O atributo atttr parece não ser vinculável ou, pelo menos, não recebe um valor atribuído. Estou faltando alguma coisa aqui?

Respostas:


11

Você está apenas atribuindo um valor a um parâmetro nomeado BUILD, e não ao atributo!

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

deve corrigir isso (observe o ! na assinatura). Observe também que não3.5 é um , você precisaria adicioná-lo .nume0

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.