Scala:隐式地将Option转换为隐式类的Option

时间:2017-07-18 21:30:24

标签: scala

如何将Option [A]隐式转换为Option [B],其中B是A的隐式类?

在以下代码中只有converter1有效,但返回类型不是通用的:

implicit class Test(val i: Int)

implicit def converter0[A, B](opt: Option[A])(implicit f: A => B): Option[B] = {
  opt.map(f)
}

implicit def converter1[A](opt: Option[A])(implicit f: A => Test): Option[Test] = {
  opt.map(f)
}

implicit def converter2[B](opt: Option[Int])(implicit f: Int => B): Option[B] = {
  opt.map(f)
}

val b: Option[Int] = Option(1)
val a: Option[Test] = b

0 个答案:

没有答案