21
|
Seth Tisue Arthur Hjorth · 技术社区 · 14 年前 |
1
23
很多有趣的答案,但我自己的理论是:如果
比如说,
原因留给读者作为练习。;—)但这里有一个提示:
|
2
4
“contains”基本上是关于相等性测试的,而Scala中的相等性(与之前的Java一样)是非类型化的。拥有非类型等式的实际价值很小,但不是零。例如,在某些情况下,不同类的两个对象彼此相等是有意义的。例如,如果RGBColor类型的对象定义了相同的色调,则可能希望它们等于PantoneColor;如果不可变HashSet和不可变TreeSet包含相同的元素,则可能希望它们等于PantoneColor。也就是说,非类型化的相等性也会引起一系列的麻烦,而且编译器可以很容易地捕捉到这一点
大多数Java bug查找工具都包含检测不可能存在的非类型化相等用法的测试。(我在IntelliJ IDEA中编写了检查来完成这项工作。)我毫不怀疑,当Scala bug查找工具上线时,这些将是最先发现的bug之一。 |
3
1
SeqLike.包含通过检查序列中是否存在与值相等的元素(使用==)来检查值是否存在。==需要一个Any,所以我怀疑这就是原因。 |
Imran · 是否应在Seq的已处理元素上进行GC? 6 年前 |
addmeaning · 如何用第二个序列的元素填充第一个序列 6 年前 |
ps0604 · 在Scala中附加到Seq不会编译 6 年前 |
Pratap D · scala:创建目录和文件 6 年前 |
spyk · Scala Seq-仅接受相同子类型的元素 7 年前 |
Sai · Spark scala中基于json对象参数的调用方法? 7 年前 |
Frank · 如何从地图中获取不同类型的元素 7 年前 |