当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Scala language.implicitConversions用法及代码示例


implicitConversions 方法(或属性)属于 scala.language 对象(object),其相关用法说明如下。

用法:

implicit lazy val implicitConversions: implicitConversions

在启用此函数的情况下,允许定义隐式转换。如果未启用implicitConversions,则隐式转换的定义将触发编译器的警告。

隐式转换是一元函数类型 A => B 的隐式值,或者是在其第一个参数部分具有单个非隐式参数的隐式方法。例子:

implicit def stringToInt(s: String): Int = s.length
implicit val conv = (s: String) => s.length
implicit def listToX(xs: List[T])(implicit f: T => X): X = ...

其他类型的隐式类和隐式值不受此语言函数的约束。

为什么要保留这个函数?隐式转换是 Scala 核心库许多方面的核心。

为什么要控制它?如果over-used,隐式转换已知会导致许多陷阱。并且有一种over-use 的趋势,因为它们看起来非常强大,而且它们的效果似乎很容易理解。此外,在大多数情况下,使用隐式参数会导致比隐式转换更好的设计。

源码:

language.scala

相关用法


注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 language.implicitConversions。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。