ちいさな引き出し

お宝からガラクタまで

Scalaの型パラメータについて

Scalaの型パラメータについて調べたことをメモ

型パラメータとは?

Javaで言うジェネリックに該当するもの。 下記のようにすると引数に文字列型以外は指定出来ない。非変という。

val list = List[String]("Hello", "World", "!")

メソッドに型パラメータをつけるには?

メソッド名の後ろに型パラメータをつける。 複数必要な場合はカンマで区切ることができる。

val m = Map(1, "ONE")
def foo[A, B, C](a: A , b: B, c: C) = c + ( a -> b)


foo(2, "TWO", m)
//  scala.collection.immutable.Map[Int,String] = Map(1 -> ONE, 2 -> TWO)
// +メソッドは新しいMapを返している。
// またfoo("3", "THREE", m)も出来ない。"3"がInt型でなく文字列型のため。
広告を非表示にする