Scala日記

Scalaの備忘録。ときどき研究の話。

型消去の結果同じ引数型になってしまうメソッドをオーバーロードする その2

以前の話の続き。

ym.hatenadiary.jp

DummyImplicitという型を使って下のような書き方をする作法もあるらしい。

gist.github.com

使わない暗黙のパラメータを取ることで引数リストの数を区別しようというもの。 ちなみに、DummyImplicitscala.Predefの中で

class DummyImplicit

object DummyImplicit {
  implicit def dummyImplicit: DummyImplicit = new DummyImplicit
}

とされているので、何もしなくてもこの暗黙のパラメータは解消される。 ダミーの暗黙のパラメータを使って区別する場合はこれを使うのがよい作法に思える。

implicit i1: DummyImplicitとかいちいち書くのが面倒くさければ、 ClassTagを使って少し短く書ける。

gist.github.com

どちらにしても相当気持ち悪い見た目をしていることには変わりない。 前回の方法とどちらを好むかは趣味がわかれるところ。

参考文献: 1. stackoverflow.com

  1. stackoverflow.com