引數化方法
方法的返回型別可以取決於引數的型別。在這個例子中,x
是引數,A
是 x
的型別,它被稱為型別引數。
def f[A](x: A): A = x
f(1) // 1
f("two") // "two"
f[Float](3) // 3.0F
Scala 將使用型別推斷來確定返回型別,該型別約束可以在引數上呼叫哪些方法。因此,必須小心:以下是編譯時錯誤,因為沒有為每種型別 A
定義*
:
def g[A](x: A): A = 2 * x // Won't compile