呼び出し元が値をオーバーライドできるようにしたいメソッドのセットがあるか、デフォルトでインスタンス変数になります。
だから私がやろうとしているのは:
method foo( Str :$blah = $self->blah ) {
#doStuff
}
これは解析エラーをスローするので、どこでもこれを行うことになります
method foo( Str :$blah? ) {
$blah = $self->blah unless defined $blah;
#doStuff
}
恐ろしいことではありませんが、MooseX::Method::Signatures がデフォルトの概念をサポートし、他のすべての標準的な「メソッドの開始」行を修正すると、ばかげているように見えます。
私がこのようなことをしようとしていて、Web 上で同じ問題に遭遇した人を他に見つけることができない場合、私は常に間違った方法で問題に取り組んでいます。メソッドは、オブジェクトで動作するメソッドではなく、外部から呼び出すためのヘルパー関数であるため、実際の oo ではなく、機能的なプログラムを oo レイアウトに詰め込もうとしているようです。したがって、定義が間違っているだけなのか、それとも「ばかげている」のか、Parse::Method::Signatures でサポートされていないのかを確認するだけです。