gpt4 book ai didi

scala - "-"中的 "+"和 `trait Function2[-T1, -T2, +R] extends AnyRef` 的解释

转载 作者:行者123 更新时间:2023-12-05 01:03:08 24 4
gpt4 key购买 nike

“-”和“+”用于特征签名中的输入和返回类型如trait Function2[-T1, -T2, +R] extends AnyRef的目的和定义是什么?

有人可以在规范中建议确切的位置来阅读它吗?

最佳答案

这些是方差和协方差注释,用于指定子类型关系如何用于多态类型。例如 List[+A]表示列表的内容是协变的:如果你有一个类型 Dog这是 Animal 的子类型然后是类型 List[Dog]将是 List[Animal] 的子类型.在有趣的符号中:如果您有类型 A<:B并且您已经定义了一个类型 X[+T]具有协变类型参数 T然后 X[A]<:X[B] . “-”用于逆变,我发现很难举一个例子来说明它的用法:一般来说,如果 A<:B你有一个类型 X[-T]然后 X[B] <: X[A] .你可能想看看 coursera 的编程语言类(class),我认为它解释了这一点,以及为什么函数的参数是逆变的,结果是协变的。

关于scala - "-"中的 "+"和 `trait Function2[-T1, -T2, +R] extends AnyRef` 的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25277963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com