Scala 无法理解=:=[A,B]代表什么
可能重复:Scala 无法理解=:=[A,B]代表什么,scala,types,Scala,Types,可能重复: 什么是=:=[A,B]类是A和B属于同一类的证据。有关解释,请参见 很难找到一些例子。下面是一个小代码: 从Scala 2.8开始,参数化类型通过通用类型约束类提供了更多的约束功能。这些类支持方法的进一步专业化,并补充上下文边界,如下所示: A=:=B断言A和B必须相等 A最好的办法是查看Predef的来源。您可以在这里找到: object =:= { implicit def tpEquals[A]: A =:= A = new (A =:= A) {def apply(
什么是
=:=[A,B]
类是A
和B
属于同一类的证据。有关解释,请参见
很难找到一些例子。下面是一个小代码:
A最好的办法是查看Predef的来源。您可以在这里找到:
object =:= {
implicit def tpEquals[A]: A =:= A = new (A =:= A) {def apply(x: A) = x}
}
因此,A=:=B类型的对象只有在A和B是同一类型时才隐式可用。请举例说明如何使用它。
@ninjagecko:A:A
断言术语A
具有A
类型。。。这类似于“是元素”关系(a∈ A) 在集合论中<但是这是一个使用类=:=[A,A]
的对象。它没有解释A=:=A
的含义,而是告诉您编译器如何隐式获取A=:=B的实例,这是该类的唯一用途。该类仅作为a等于B这一事实的见证。很抱歉重复,但同样,无法搜索字符串“=:=”。。。
object =:= {
implicit def tpEquals[A]: A =:= A = new (A =:= A) {def apply(x: A) = x}
}