黒猿の家:Scala汎用関数
967 ワード
1、概要
関数またはメソッドには、タイプ(汎用)パラメータもあります.以下に簡単な例を示します.
汎用クラスと同様に、タイプパラメータをメソッド名の後に置く必要があります.Scalaは、このメソッドを呼び出すタイミングパラメータからタイプを推定します.
必要に応じて、タイプを指定することもできます.
2、体操
関数またはメソッドには、タイプ(汎用)パラメータもあります.以下に簡単な例を示します.
def getMiddle[T](a:Array[T]) = a(a.length/2)
汎用クラスと同様に、タイプパラメータをメソッド名の後に置く必要があります.Scalaは、このメソッドを呼び出すタイミングパラメータからタイプを推定します.
// getMiddle[String]
getMiddle(Array(“Mary” , ”had” , ”a” , ”little” , ”lamb”))
必要に応じて、タイプを指定することもできます.
// , f
val f = getMiddle[String] _
println(f(Array("Bob", "had", "a", "little", "brother")))
2、体操
object MainPair2{
def main(args: Array[String]): Unit = {
def getMiddle[T](x:T): Unit ={
}
//
println(getMiddle(Array("Bob", "had", "a", "little", "brother")).getClass.getTypeName)
// , 。
val f = getMiddle[Array[String]] _
println(f(Array("Bob", "had", "a", "little", "brother")))
}
}