私は、透過的な implicit
変換が本当に良いアイデアであるかどうか、そして暗黙的により多くの、ええと、明示的に使用する方が実際に良いのではないかと考えてきました。たとえば、パラメータとしてaを受け入れるメソッドがあり、 aを:にDate
変換する暗黙の変換があるとString
します。Date
implicit def str2date(s: String) : Date = new SimpleDateFormat("yyyyMMdd").parse(s)
private def foo(d: Date)
次に、明らかにこれを透過的なimplicit
変換で呼び出すことができます。
foo("20090910")
文字列を日付に変換しているという事実をより明確にする方がよいでしょうか?
class DateString(val s: String) {
def toDate : Date = new SimpleDateFormat("yyyyMMdd").parse(s)
}
implicit def str2datestr(s: String) : DateString = new DateString(s)
したがって、使用法は次のようになります。
foo("20090910".toDate)
これの利点は、後で何が起こっているのかがより明確になることです-私は(誰かに?)implicit
知っておくべき透過的な変換によって数回捕らえられましたが、この使用法はまだ私たちがの力を利用することを可能にしますs。Option
Iterable
implicit