Thread method new Attribute zurückgeben lassen
(0 answers)
Opened by Sven_123 at 2012-11-07 17:15
Ich flute das Forum. :)
Erstmal eine Beispielklasse: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 use v6; class test { has @.x; method new($r) { return self.bless(*,:$r) } submethod BUILD(:$r) { @!x.push(^$r.rand); } } my $x = test.new(10); say $x.x.perl; Bei dieser möchte ich jetzt, dass mir new nicht nur das Objekt, sondern gleich auch die Länge des enthaltenen Arrays zurückgibt. Hatte grad Moritz' blog-Eintrag zu den Konstruktoren nochmal gelesen, aber ich versteh nicht, warum ich in dem new-Block @!x nicht benutzen kann, in dem BUILD-Block, der ja eigentlich durch das bless schon davor aufgerufen wird allerdings schon...? Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 use v6; class test { has @.x; method new($r) { my $tmp = self.bless(*,:$r); return $tmp,@!x.elems; } submethod BUILD(:$r) { @!x.push(^$r.rand); } } my ($x,$y) = test.new(10); say $x.x.perl; say $y; |