2017-10-15 54 views

回答

2

由於1Int類型,因此編譯器知道a也是Int類型。 這被稱爲類型推斷。

應該明確指定類型時,這是更好的代碼可讀性。

必須指定編譯器無法推斷類型或何時有助於推斷其他類型的類型。

在Scala類型推理可以從兩個方向進行,從右到左,反之亦然。例如,在val a = 1中,從1的類型推斷出a的類型,因此類型推斷從右向左進行。在

def myMethod[T](): T = ??? 
val n: Int = myMethod() 

因爲n有望成爲一個Int,編譯器將指示TmyMethod()應該Int太多,所以類型推斷從左至右去了。

https://twitter.github.io/scala_school/type-basics.html#inference

http://www.scala-lang.org/old/node/127

http://allaboutscala.com/tutorials/chapter-2-learning-basics-scala-programming/scala-tutorial-overview-scala-type-inference/

How does scala infers the type of a variable?

0

在大多數情況下,Scala編譯器可以自動推導出類型。在這些情況下,您不必顯式定義變量聲明的類型。

var a = 1 

是完全有效的Scala代碼。

通常建議顯式聲明公共方法的返回類型。

相關問題