Các thuộc tính riêng có thể được sử dụng làm mục tiêu liên kết trong các tham số không?


8

Theo danh sách kiểm tra 6.d (phiên bản hiện tại) , họ có thể.

Tuy nhiên,

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

Thuộc tính dường như không thể ràng buộc hoặc ít nhất là không nhận được giá trị được gán. Am i thiếu cái gì ở đây?

Câu trả lời:


11

Bạn chỉ đang gán một giá trị cho một tham số được đặt tên BUILD, không phải cho thuộc tính!

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

nên sửa nó (lưu ý ! trong chữ ký). Xin lưu ý rằng 3.5không một num, bạn sẽ phải làm cho nó trở thành một bằng cách thêm e0.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.