繁体   English   中英

Scala、Spark 中 == 和 === 的区别

[英]Difference between == and === in Scala, Spark

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

我正在使用 Scala 和 Spark。 但我无法理解我在哪里使用=====

谁能告诉我在哪种情况下我需要使用这两个运算符, =====之间有什么区别?

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

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

  • ==返回一个布尔值

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

一般来说,它们只是函数。

对于不同的类型,“==”和“===”可能被定义或“重载”以表示不同的含义。

例如,在某些测试框架中,为某些特殊功能定义了“===”。 看到这个

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

assert(1 == 2) 改用三重等于会给您提供更多信息的错误消息,“1 不等于 2”:

断言(1 === 2)

查看此页面了解更多详情; Scala Koans 中的 === (triple-equals) 运算符是什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM