Разница между == и === в Scala, Spark

Я из Java и новичок в Scala.

Я использую Scala и Spark. Но я не могу понять, где я использую == и ===.

Может кто-нибудь сообщить мне, в каком сценарии мне нужно использовать эти два оператора, и в чем разница между == и ===?

Ответ 1

"==" использует методы equals, которые проверяют, указывают ли две ссылки на один и тот же объект. Определение "===" зависит от контекста/объекта. Для Spark "===" использует метод equalTo. См

(Поскольку вы ссылаетесь на Spark:) Важным отличием Spark является возвращаемое значение. Для столбца:

  • == возвращает boolean

  • === возвращает столбец (который содержит результат сравнения элементов из двух столбцов)

Ответ 2

Вообще говоря, это просто функции.

Для разных типов "==" и "===" могут быть определены или "перегружены" для разных значений.

Например, в некоторой тестовой среде для некоторой специальной функции определен "===". См. .

Ответ 3

ScalaTest позволяет использовать синтаксис утверждения Scala, но определяет оператор triple equals (===), чтобы дать вам лучшие сообщения об ошибках. Следующий код даст вам ошибку, указывающую только на то, что утверждение не выполнено:

assert (1 == 2) Вместо этого, используя triple equals, вы получите более информативное сообщение об ошибке: "1 не равно 2":

assert (1 === 2)

ознакомьтесь с этой страницей для получения более подробной информации; Что такое оператор === (тройной эквивалент) в Scala Koans?