私は明らかに文字列連結のWHAT
メソッドを呼び出すことができないコードのこのビットについて困惑していますか?なぜPerl 6の文字列連結は.WHATが嫌いですか?
my $object = 'Camelia';
say $object;
say $object.WHAT;
say "^name: The object is a " ~ $object.^name;
say "WHAT: The object is a " ~ $object.WHAT;
出力があるかのよう^name
作品(Metamodel::ClassHOWからメタメソッド)を呼び出すが、Perl 6のは.WHAT
によって混同されることは優先順位の問題があることを示しています。
Camelia
(Str)
^name: The object is a Str
Use of uninitialized value of type Str in string context
Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at meta_methods.p6 line 7
WHAT: The object is a
私はPerl 6:
This is Rakudo version 2015.12-219-gd67cb03 built on MoarVM version 2015.12-29-g8079ca5
implementing Perl 6.c.
それは実際に壊れているように見えます。 –
あなたが値を連結しているなら、あなたはそれが適切な値であることを期待しているという考えがあります。もしあなたが未定義の値を得ようとしているのであれば、あなたは.perlと友人(あなたが "(Str)"を望むなら)または。 – timotimo
@briandfoy私は答えを書き直しました。たぶん、私の新しい答えはもっと意味をなさないでしょう。 – raiph