Tôi có một lớp với các thuộc tính. Tôi muốn kiểm tra xem một số nhưng không phải tất cả được xác định. Vì thế:
class A {
has $.a is rw;
has $.b is rw;
has $.c is rw;
has $.d is rw;
method delete { ... }
}
my A $x .= new(:a<hi>, :d<good>);
## later
$x.b = 'there';
## code in which $x.c may or may not be defined.
## now I want to check if the attributes a, b, and c are defined, without
## needing to know about d
my Bool $taint = False;
for <a b c> {
$taint &&= $x.$_.defined
}
Điều này sẽ gây ra lỗi vì một đối tượng loại A không có phương thức 'CALL-ME' cho chuỗi loại.
Có một phương thức hướng nội cung cấp cho tôi các giá trị thuộc tính của một lớp không?
$x.^attributes
cho tôi tên và loại của họ, nhưng không phải là giá trị của họ.
Tôi nghĩ rằng phải có một số cách kể từ khi dd
hoặc .perl
cung cấp các giá trị thuộc tính - tôi nghĩ.
is rw
đặc điểm này cho lớp.