2014-03-26 58 views

回答

0
sub getAClass { 
    return new AClass(); 
} 

但爲什麼

my $o = AClass->getAClass(); 

代替

my $o = AClass->new(); 
+0

謝謝,我寫了一個錯誤:return AClass-> new(); – user3385945

+0

不,我會把它寫成'AClass-> new()'(你在後面看到的更進一步)。我使用了間接對象表示法(通常不鼓勵),只是爲了讓您的代碼幾乎是您發佈的Java代碼的原始代碼,以便巧妙地指出您並未對您的問題付出任何努力。 – ikegami

+0

我有一個問題,當我嘗試時,它會引發錯誤「Undefined subroutine&main :: getAClass ..」,我的$ t1 = AClass-> new(3,4);我的$ t2 = $ t1.getAClass – user3385945

0

避免間接對象表示法。使用

AClass->new(...) 

,而不是

new AClass(...) 

的原因是,前者總是做你所期望的,而後者是模糊的語法 - 它代表前者的代碼,或者它真的是這個?

new(AClass(...)) 

解析器可能會猜測錯誤的意圖來解決這種歧義。所以你應該避免它 - 使用直接的箭頭符號來代替。

相關問題