我来自Java背景,对Scala不熟悉。
我正在使用Scala和Spark。但是我不明白何时使用==
和===
。
有人能告诉我在哪种情况下需要使用这两个运算符,以及==
和===
之间的区别是什么吗?
我来自Java背景,对Scala不熟悉。
我正在使用Scala和Spark。但是我不明白何时使用==
和===
。
有人能告诉我在哪种情况下需要使用这两个运算符,以及==
和===
之间的区别是什么吗?
==
"使用equals
方法检查两个引用是否指向同一对象。"===
"的定义取决于上下文/对象。 对于Spark来说,"===
"使用equalTo
方法。
请参见:
- 对于 ==
,请查看 https://spark.apache.org/docs/2.0.0/api/java/org/apache/spark/sql/Column.html#equals(java.lang.Object)
- 对于 ===
,请查看 https://spark.apache.org/docs/2.0.0/api/java/org/apache/spark/sql/Column.html#equalTo(java.lang.Object)
(由于您在引用Spark:) 对于Spark来说,一个重要的区别是返回值。对于列:
- " ==
"返回布尔值。
- " ===
"返回列(其中包含比较两列元素的结果)。===
运算符,因为==
运算符不能被重载。 - wrschneider请查看此页面以获取更多详细信息: 什么是Scala Koans中的===(三等号)运算符?assert(1 == 2) 使用三等号代替会给出更详细的错误消息,“1 did not equal 2”:
assert(1 === 2)
===
和==
只是像其他任何函数一样的函数。它们没有任何特殊的意义。 - zero323