Tôi đang cố thêm các phương thức mới vào một động lực đối tượng.cách tạo phương thức từ mảng hoặc băm trong perl6
Tiếp theo mã số hoạt động tốt:
use SomeClass;
my $obj = SomeClass.new;
my $blah = 'ping';
my $coderef = method { say 'pong'; }
$obj.^add_method($blah, $coderef);
$obj.ping;
này in "pong" như mong đợi, trong khi sau đây sẽ không hoạt động như mong đợi:
use SomeClass;
my $obj = SomeClass.new;
my %hash = one => 1, two => 2, three => 3;
for %hash.kv -> $k, $v {
my $coderef = method { print $v; }
$obj.^add_method($k, $coderef);
}
$obj.one;
$obj.two;
$obj.three;
sẽ in hoặc 111 hoặc 333.
Bất cứ ai có thể giải thích những gì tôi đang thiếu hoặc lý do tại sao kết quả khác với những gì tôi đã mong đợi?
cảm ơn bạn đã cung cấp thông tin này. tôi đã sử dụng bản phát hành hàng tháng mới nhất. –