Können native Attribute als Bindungsziel in Parametern verwendet werden?


8

Laut der Checkliste 6.d (aktuelle Version) können sie.

Jedoch,

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

Das Attribut scheint nicht bindbar zu sein oder erhält zumindest keinen zugewiesenen Wert. Vermisse ich hier etwas?

Antworten:


11

Sie weisen nur einem benannten Parameter in einen Wert zu BUILD, nicht dem Attribut!

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

sollte das beheben (beachten Sie das ! in der Unterschrift). Bitte beachten Sie auch , dass 3.5sich nicht ein num, würden Sie es eine machen müssen durch Zugabe e0.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.