属性を持つクラスがあります。すべてではなく一部が定義されているかどうかを確認したいと思います。そう:
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
}
タイプAのオブジェクトにはタイプ文字列用のメソッド 'CALL-ME'がないため、これによりエラーが発生します。
クラスの属性の値を提供するイントロスペクションメソッドはありますか?
$x.^attributes
それらの名前とタイプは与えられますが、値は与えられません。
属性値を提供しdd
たり、.perl
提供したりする方法がいくつかあるに違いないと思います。
is rw
、クラスに特性を適用できます。