當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。