用法:
final class implicitNotFound(msg: String) extends ConstantAnnotation
要自定義在找不到 C[T1,..., TN]
類型的隱式時發出的錯誤消息,請使用 @implicitNotFound
注釋類 C
.假設 C
具有類型參數 X1, ..., XN
,錯誤消息將是用相應類型參數 Ti
的字符串表示替換字符串 msg
中所有出現的 ${Xi}
的結果。如果子類型沒有注解,注解就會被子類型有效地繼承。
注釋也可以附加到隱式參數。在這種情況下,${Xi}
可以引用當前範圍內的類型參數。參數上的@implicitNotFound
消息優先於參數類型上的消息。
import scala.annotation.implicitNotFound
@implicitNotFound("Could not find an implicit C[${T}, ${U}]")
class C[T, U]
class K[A] {
def m[B](implicit c: C[List[A], B]) = 0
def n[B](implicit @implicitNotFound("Specific message for C of list of ${A} and ${B}") c: C[List[A], B]) = 1
}
object Test {
val k = new K[Int]
k.m[String]
k.n[String]
}
編譯器發出以下錯誤消息:
Test.scala:13: error: Could not find an implicit C[List[Int], String]
k.m[String]
^
Test.scala:14: error: Specific message for C of list of Int and String
k.n[String]
^
相關用法
- Scala annotation.implicitAmbiguous用法及代碼示例
- Scala annotation.ConstantAnnotation用法及代碼示例
- Scala annotation.showAsInfix用法及代碼示例
- Scala annotation.nowarn用法及代碼示例
- Scala annotation.switch用法及代碼示例
- Scala annotation.elidable用法及代碼示例
- Scala any.!=用法及代碼示例
- Scala any.ToString用法及代碼示例
- Scala any.==用法及代碼示例
- Scala any.IsConst用法及代碼示例
- Scala aggregate()用法及代碼示例
- Scala Tabulate.sliding用法及代碼示例
- Scala ArrayBuffer.inits用法及代碼示例
- Scala long.BitwiseOr用法及代碼示例
- Scala StringBuilder.partitionMap用法及代碼示例
- Scala List distinct()用法及代碼示例
- Scala DefaultMap.sizeIs用法及代碼示例
- Scala StrictOptimizedIterableOps.sliding用法及代碼示例
- Scala Searching.SearchResult用法及代碼示例
- Scala ::.collectFirst用法及代碼示例
- Scala TreeSet diff()用法及代碼示例
- Scala Char getClass()用法及代碼示例
- Scala int.Min用法及代碼示例
- Scala IntMap.groupMap用法及代碼示例
- Scala Map3.mkString用法及代碼示例
注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 annotation.implicitNotFound。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。