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