Scala の implicit conversion について学んだので implicit parameter も復習します。
- 関数のパラメータリストに implicit キーワードを付けます。
- 個々のパラメータに対してではなく、パラメータリスト全体に対して付けることができます。
- implicit 宣言されたパラメータは、関数呼び出し時に明示的にパラメータを渡すことができません。
- 明示的な値ではなく、スコープ上に implicit value が定義されていることを要求します。
- implicit value でなくて Implicit def (implicit function?) でもOKです。他にも方法があるみたいです。
- 明示的な値ではなく、スコープ上に implicit value が定義されていることを要求します。
- スコープ上に implicit value が定義されていると、コンパイラがそれを型で結び付けてくれます。
- そのため、implicit parameter のある型に対する スコープ上に implicit value が一意ではないとコンパイルエラーです。
ググってたら implicit 族には implicit class というのもあるらしいことが分かった。全く知らない。それにしてもScalaは簡単にカリー化した関数が書けて便利。