作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如,为什么 List(1,2,3,4).contains("wtf")
甚至编译?如果编译器拒绝这个不是很好吗?
最佳答案
很多有趣的答案,但这是我自己的理论:如果 contains
没有收到 Any
,然后 Seq
不可能是协变的。
例如,参见 Set
,它不是协变的并且其 contains
拿个 A
而不是 Any
.
其原因留给读者作为练习。 ;-) 但这里有一个提示:
scala> class Container[+A](elements: A*) {
| def contains(what: A): Boolean = elements exists (what ==)
| }
<console>:7: error: covariant type A occurs in contravariant position in type A of value what
def contains(what: A): Boolean = elements exists (what ==)
^
关于Scala:为什么 Seq.contains 采用 Any 参数,而不是序列类型的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3678998/
我是一名优秀的程序员,十分优秀!