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


Scala annotation.implicitAmbiguous用法及代碼示例

用法:

@getter
final class implicitAmbiguous(msg: String) extends ConstantAnnotation

要自定義在隱式搜索找到多個不明確值時發出的錯誤消息,請注釋至少一個隱式值 @implicitAmbiguous.假設隱式值是帶有類型參數 X1,..., XN 的方法,錯誤消息將是用相應類型參數 Ti 的字符串表示形式替換字符串 msg 中所有出現的 ${Xi} 的結果。

如果收集了多個 @implicitAmbiguous 注釋,編譯器可以自由選擇其中的任何一個來顯示。

好的錯誤可以指導用戶修複導入,甚至告訴他們為什麽代碼故意不編譯。

trait =!=[C, D]

implicit def neq[E, F] : E =!= F = null

@annotation.implicitAmbiguous("Could not prove ${J} =!= ${J}")
implicit def neqAmbig1[G, H, J] : J =!= J = null
implicit def neqAmbig2[I] : I =!= I = null

implicitly[Int =!= Int]

源碼:

implicitAmbiguous.scala

相關用法


注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 annotation.implicitAmbiguous。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。