web-dev-qa-db-fra.com

Différence entre == et === dans Scala, Spark

Je viens de Java et je viens de découvrir Scala.

J'utilise Scala et Spark. Mais je ne suis pas capable de comprendre où j'utilise ==et ===.

Quelqu'un pourrait-il me faire savoir dans quel scénario je dois utiliser ces deux opérateurs et quelle est la différence entre == et ===?

26
Avijit

Le "==" utilise les méthodes equals qui vérifient si les deux références pointent sur le même objet. La définition de "===" dépend du contexte/de l'objet. Pour Spark, "===" utilise la méthode equalTo . Voir

(Puisque vous faites référence à Spark :) Une différence importante pour Spark est la valeur de retour. Pour la colonne:

  • == renvoie un booléen

  • === renvoie une colonne (qui contient le résultat des comparaisons des éléments de deux colonnes)

31
Christian Fries

De manière générale, ce ne sont que des fonctions.

Pour différents types, "==" et "===" peuvent être définis ou "surchargés" pour différentes significations.

Par exemple, dans certains cadres de test, "===" est défini pour une fonction spéciale. Voir this .

9
Lifu Huang

ScalaTest vous permet d'utiliser la syntaxe d'assertion de Scala, mais définit un opérateur triple égal (===) pour vous fournir de meilleurs messages d'erreur. Le code suivant vous donnerait une erreur indiquant seulement qu'une assertion a échoué:

assert (1 == 2) Utiliser triple égal à vous donnerait le message d'erreur plus informatif, "1 n'est pas égal à 2":

assert (1 === 2)

jetez un oeil à cette page pour plus de détails; Qu'est-ce que l'opérateur === (triple-égal à) de Scala Koans?

0
Aditya Agarwal