Scala,Spark中==和===之间的区别

时间:2016-09-14 12:16:22

标签: scala apache-spark

我来自Java背景,是Scala的新手。

我正在使用Scala和Spark。但我无法理解我使用=====的位置。

有谁能让我知道在哪种情况下我需要使用这两个操作符,=====之间的区别是什么?

3 个答案:

答案 0 :(得分:34)

==”使用equals方法检查两个引用是否指向同一个对象。 “===”的定义取决于上下文/对象。对于Spark,“===”正在使用equalTo方法。 参见

(因为你引用Spark :) Spark的一个重要区别是返回值。对于专栏:

  • ==返回布尔值

  • ===返回一列(其中包含两列元素比较的结果)

答案 1 :(得分:10)

Generally speaking, they are just functions.

For different types, "==" and "===" might be defined or "overloaded" for different meanings.

For example, in some test framework, "===" is defined for some special function. See this

答案 2 :(得分:1)

ScalaTest允许您使用Scala的断言语法,但定义了一个三等号运算符(===),以便为您提供更好的错误消息。以下代码会给出一个错误,指出断言失败:

断言(1 == 2) 使用三等于将提供更多信息性的错误消息," 1不等于2":

断言(1 === 2)

查看此页面了解更多详情; What is the === (triple-equals) operator in Scala Koans?