簡體   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