Я использую Scala и Spark. Но я не могу понять, где я использую == и ===.
Может кто-нибудь сообщить мне, в каком сценарии мне нужно использовать эти два оператора, и в чем разница между == и ===?
Ответ 1
"==" использует методы equals, которые проверяют, указывают ли две ссылки на один и тот же объект. Определение "===" зависит от контекста/объекта. Для Spark "===" использует метод equalTo.
См
(Поскольку вы ссылаетесь на Spark:) Важным отличием Spark является возвращаемое значение. Для столбца:
== возвращает boolean
=== возвращает столбец (который содержит результат сравнения элементов из двух столбцов)
Ответ 2
Вообще говоря, это просто функции.
Для разных типов "==" и "===" могут быть определены или "перегружены" для разных значений.
Например, в некоторой тестовой среде для некоторой специальной функции определен "===". См. .
Ответ 3
ScalaTest позволяет использовать синтаксис утверждения Scala, но определяет оператор triple equals (===), чтобы дать вам лучшие сообщения об ошибках. Следующий код даст вам ошибку, указывающую только на то, что утверждение не выполнено:
assert (1 == 2)
Вместо этого, используя triple equals, вы получите более информативное сообщение об ошибке: "1 не равно 2":