Thread Klassen-Attribute nur für einen Methodenaufruf überschreiben
(6 answers)
Opened by Kuerbis at 2016-01-11 09:44
Hier geht es darum, dass die an die Methode choose übergebenen Optionen nur für den einen Aufruf gültig sind, aber nicht die mit new gesetzten Attribute global überschreiben.
Eine Alternative zu meinem obigen Beispiel - hier müsste ich aber die übergebenen Optionen von Hand validieren: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #!/usr/bin/env perl6 use v6; class Term::Choose { has Str $.prompt = 'Your Choice'; has Int @.mark; has %!opt; method choose ( Array $orig_list, %!opt? ) { %!opt<prompt> //= $.prompt; say "prompt: %!opt<prompt>" with %!opt<prompt>; %!opt<mark> //= [ @.mark ]; say "mark : %!opt<mark>[]\n" with %!opt<mark>; } } my $n = Term::Choose.new( prompt => 'AAAAA', mark => [ 5, 6 ] ); $n.choose( [ 1 .. 10 ] ); $n.choose( [ 1 .. 10 ], { prompt => 'BBBBB', mark => [ 1 .. 4 ] } ); $n.choose( [ 1 .. 10 ] ); |