次のように私は新しいタイプTuple
を定義しました:なぜPerl6は追加後に配列の長さをチェックしませんか?
subset Tuple of Array where { .elems == 2 && .[0] < .[1] };
my Tuple $t = [1, 2];
say $t; # [1 2] So far, so good.
予想通り、私は、短いまたは長い配列または[2, 1]
でそれを初期化できません。しかし、私はそれに追加することができます:
$t.append(3);
say $t; # [1 2 3] Ouch!
どのように可能ですか?