我能有这样一个构造函数:这是对Perl构造函数调用的等效函数调用吗?
sub create {
my $class = shift;
my $self = {};
return bless $self,$class;
}
,当我创建一个对象,我可以这样写:
my $object = create Object;
是这样的:
my $object = Object::create("Object");
只相当于该构造函数调用?
我能有这样一个构造函数:这是对Perl构造函数调用的等效函数调用吗?
sub create {
my $class = shift;
my $self = {};
return bless $self,$class;
}
,当我创建一个对象,我可以这样写:
my $object = create Object;
是这样的:
my $object = Object::create("Object");
只相当于该构造函数调用?
没有,等效通话
my $object = Object->create();
如果使用create
功能的完全合格的名字没有箭头的语法,你不打算通过Perl的面向对象的方法分派,因此任何继承的方法将不行。
箭头语法优于“间接”create Object
语法。有关原因,请参阅this question。
您不必使用'
'只需在代码块前面放四个空格,或者更好的选择它,然后按**'[Ctrl]'** + **'[K]' **。 – 2009-09-01 21:04:36使用'new'作为构造函数的名称是一个非常普遍的约定。是的,你可以称它为“chew_toenail_clippings”,如果你愿意,它可以工作,但这很难记忆(如果有点严重)。此外,您可能希望研究Moose(http://moose.perl.org/),它是一个非常强大的面向Perl的面向对象系统,可以帮助您节省大量冗余代码(请参阅“不加糖的”示例:http:/ /search.cpan.org/dist/Moose/lib/Moose/Manual/Unsweetened.pod) – daotoad 2009-09-01 23:20:24