私は読んProgramming Perl
でいて、このコードスニペットを見つけました:
sub new {
my $invocant = shift;
my $class = ref($invocant) || $invocant;
my $self = {
color => "bay",
legs => 4,
owner => undef,
@_, # Override previous attributes
};
return bless $self, $class;
}
このようなコンストラクターでnew
は、オブジェクトインスタンスを呼び出すことの利点は何ですか?それが目的だと思いますよね?私の推測では、誰かがそのようなコンストラクターを書きたい場合は、最初のオブジェクトの属性を作成しようとしているオブジェクトにコピーするコードをさらに追加する必要があります。