(-> % read write unlearn)

All opinions expressed are solely my own and do not express the views or opinions of my employer.

Scala の implicit parameter

Scala の implicit conversion について学んだので implicit parameter も復習します。

  • 関数のパラメータリストに implicit キーワードを付けます。
    • 個々のパラメータに対してではなく、パラメータリスト全体に対して付けることができます。
  • implicit 宣言されたパラメータは、関数呼び出し時に明示的にパラメータを渡すことができません。
    • 明示的な値ではなく、スコープ上に implicit value が定義されていることを要求します。
      • implicit value でなくて Implicit def (implicit function?) でもOKです。他にも方法があるみたいです。
  • スコープ上に implicit value が定義されていると、コンパイラがそれを型で結び付けてくれます。
    • そのため、implicit parameter のある型に対する スコープ上に implicit value が一意ではないとコンパイルエラーです。

ググってたら implicit 族には implicit class というのもあるらしいことが分かった。全く知らない。それにしてもScalaは簡単にカリー化した関数が書けて便利。