it-roy-ru.com

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

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

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

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

26
Avijit

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

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

  • == возвращает логическое значение

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

31
Christian Fries

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

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

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

9
Lifu Huang

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

assert (1 == 2) Использование вместо этого тройного равенства даст вам более информативное сообщение об ошибке «1 не равно 2»:

утверждать (1 === 2)

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

0
Aditya Agarwal