【Scala】型パラメータを指定せずに呼び出せるメソッド
Option型に対して中身があるかどうかを判定するメソッドを書いている時に、Optionの中身の型は気にしないで判定する共通のメソッドがほしくなりました。
以下のように型パラメータを指定してあげれば、メソッドを呼ぶ時に型を指定しなくても型推論が効いてくれて動作しました。
scala> def require[T](param: Option[T]): T = { | param match { | case Some(x) => x | case None => throw new Exception | } | } require: [T](param: Option[T])T
メソッドを呼び出してみる
scala> val hoge: Option[Int] = Option(123) hoge: Option[Int] = Some(123) scala> require(hoge) res0: Int = 123 scala> val fuga: Option[String] = Option("aaa") fuga: Option[String] = Some(aaa) scala> require(fuga) res1: String = aaa scala> val none: Option[String] = Option(null) none: Option[String] = None scala> require(none) java.lang.Exception at .require(<console>:14) ... 29 elided