2012-09-07 55 views

回答

7

在Scala中,方法聲明中的等號告訴編譯器該方法返回一些東西。如果沒有等號出現,那麼編譯器知道該方法不返回任何東西。這相當於Java中的void方法。在Scala中,返回任何內容都不會返回Unit

scala> def noEquals(x: Int) { x + 1 } 
noEquals: (x: Int)Unit 

scala> val y = noEquals(5) 
y: Unit =() 

比較,以其中等同出現標誌的例子:

scala> def hasEquals(x: Int) = { x + 1 } 
hasEquals: (x: Int)Int 

scala> val z = hasEquals(5) 
z: Int = 6 

在Java中,主要的方法不返回任何東西(它的聲明爲void,爲public static void main(String[] args))。因此,Scala版本會離開等號。

還要注意,只要方法返回Unit(儘管這會違背約定),您可以使用等號編寫主要方法。另外,對於其他方法而言,等號不是「必需的」......只是那些需要返回的東西。如果你正在編寫一個不返回任何東西的方法,那麼離開等號是完全可以接受的(適當的)。

相關問題