wake-up-neo.com

Unterschied zwischen == und === in Scala, Spark

Ich komme aus Java und bin neu in Scala.

Ich benutze Scala und Spark. Aber ich kann nicht verstehen, wo ich ==und === verwende.

Kann mir jemand mitteilen, in welchem ​​Szenario ich diese beiden Operatoren verwenden muss, und was ist der Unterschied zwischen == und ===?

26
Avijit

Der "==" verwendet die equals-Methoden, die prüfen, ob die beiden Referenzen auf dasselbe Objekt verweisen. Die Definition von "===" hängt vom Kontext/Objekt ab. Für Spark verwendet "===" die equalTo-Methode . Siehe

(Da Sie auf Spark verweisen :) Ein wichtiger Unterschied für Spark ist der Rückgabewert. Für Spalte:

  • == gibt einen Boolean zurück

  • === gibt eine Spalte zurück (die das Ergebnis der Vergleiche der Elemente zweier Spalten enthält)

31
Christian Fries

Im Allgemeinen handelt es sich lediglich um Funktionen.

Für verschiedene Typen können "==" und "===" für verschiedene Bedeutungen definiert oder "überladen" werden.

In einigen Test-Frameworks ist beispielsweise "===" für eine spezielle Funktion definiert. Siehe this .

9
Lifu Huang

In ScalaTest können Sie die Assertionssyntax von Scala verwenden, definieren jedoch einen Triple-Equals-Operator (===), um bessere Fehlermeldungen zu erhalten. Der folgende Code würde einen Fehler anzeigen, der nur angibt, dass eine Zusicherung fehlgeschlagen ist:

assert (1 == 2) Wenn Sie stattdessen Triple Equals verwenden, erhalten Sie die informativere Fehlermeldung "1 war nicht gleich 2":

behaupten (1 === 2)

werfen Sie einen Blick auf diese Seite, um weitere Informationen zu erhalten: Was ist der Operator === (Triple-Equals) in Scala Koans?

0
Aditya Agarwal