Scala 導覽

多型方法

語言

Scala 中的方法可以透過類型和值參數化。語法類似於泛型類別。類型參數用方括號括起來,而值參數用括號括起來。

以下是範例

def listOfDuplicates[A](x: A, length: Int): List[A] = {
  if (length < 1)
    Nil
  else
    x :: listOfDuplicates(x, length - 1)
}
println(listOfDuplicates[Int](3, 4))  // List(3, 3, 3, 3)
println(listOfDuplicates("La", 8))  // List(La, La, La, La, La, La, La, La)
def listOfDuplicates[A](x: A, length: Int): List[A] =
  if length < 1 then
    Nil
  else
    x :: listOfDuplicates(x, length - 1)

println(listOfDuplicates[Int](3, 4))  // List(3, 3, 3, 3)
println(listOfDuplicates("La", 8))  // List(La, La, La, La, La, La, La, La)

方法 listOfDuplicates 採用類型參數 A 和值參數 xlength。值 x 是類型 A。如果 length < 1,我們會傳回一個空清單。否則,我們會將 x 加到遞迴呼叫傳回的重複清單前面。(請注意 :: 表示將元素加到清單的前面。)

在第一個範例呼叫中,我們透過撰寫 [Int] 明確提供類型參數。因此,第一個引數必須是 Int,而傳回類型會是 List[Int]

第二個範例呼叫顯示,您不需要總是明確提供類型參數。編譯器通常可以根據內容或值參數的類型來推論它。在此範例中,"La"String,因此編譯器知道 A 必須是 String

此頁面的貢獻者