implicit的使用场景有哪些?
⭐️⭐️⭐️⭐
1.隐式参数:
def handleEarnOpportunityInfo(earnOpportunityInfoCommand: FetchEarnOpportunityInfoCommand)(implicit lang: Language)
2.隐式值
implicit val overviewOpportunityInfoTransformer: Transformer[EarnOverviewOpportunityInfo, Displayable] =
Transformable[EarnOverviewOpportunityInfo, Displayable].instance
3.隐式转换
@inline implicit def intWrapper(x: Int) = new runtime.RichInt(x)
4.拓展方法(Scala2)
implicit final class BigDecimalStringOps(val decimalStr: String) extends AnyVal {
def toBigDecimalOpt: Option[BigDecimal] = Try(Option(BigDecimal(decimalStr))).getOrElse(None)
def toBigDecimal: BigDecimal = toBigDecimalOpt.getOrElse(BigDecimal(0))
}
5.隐式嵌套(也属于隐式转换)
implicit final def transformerOption[F, T](implicit e: Transformer[F, T]): Transformer[Option[F], Option[T]] =
new Transformer[Option[F], Option[T]] {
override def transform(from: Option[F]): Option[T] = from.map(e.transform)
}
答到1.2.3.4及格
答全,满分
Last updated
Was this helpful?