Revision 1 as of 2011-05-30 00:47:59

Clear message
Locked History Actions

scala/implicit

implicit

暗黙のパラメータ

implicitとマークされた引数は、その型と一致し、implicitとマークされたオブジェクトが存在すれば自動的に供給される。

object ImplicitTest {
  
  class ThisIsImplicitSample(value: Int) {
    override def toString = { "ThisIsImplicitSample:" + value }
  }
  
  // 暗黙的に供給されるオブジェクト。implicitを記述する
  implicit val sample = new ThisIsImplicitSample(1)
  
  // implicitとマークされた引数を持つメソッド。implicitを記述する。
  def methodWithImplicitArg(implicit s: ThisIsImplicitSample) {
    println("methodWithImplicitArg called:" + s)
  }
  
  def main(args: Array[String]) {
    methodWithImplicitArg // 暗黙的に供給
    methodWithImplicitArg(new ThisIsImplicitSample(2)) // 明示的に供給
  }
}

この結果は

methodWithImplicitArg called:ThisIsImplicitSample:1
methodWithImplicitArg called:ThisIsImplicitSample:2