我能有這樣一個構造函數:這是對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