Scala класс дела против Kotlin класс данных - PullRequest
0 голосов
/ 31 марта 2020

Scala имеет функцию под названием case case , в то время как Kotlin имеет другую функцию под названием data class . Каковы основные различия между Scala классом дела и Kotlin классом данных ?

Ответы [ 2 ]

3 голосов
/ 01 апреля 2020

В целом они очень похожи, но я бы упомянул некоторые отличия:

  1. Scala case-класс может иметь несколько списков параметров (включая неявные параметры) и только параметры из первого списка используются для toString / equals / hashCode.

  2. Scala позволяет классу дел не иметь параметров, Kotlin - нет. Конечно, обычно вместо этого класса дел должен быть object.

  3. На этой ноте существуют case object s .

  4. Сопутствующий объект класса case по умолчанию расширяет соответствующий тип функции.

1 голос
/ 31 марта 2020

Scala класс дела создает класс, который:

  1. Определяет функции доступа (в основном, методы получения и установки)
  2. Переопределения естественно хэш-код , toString и равно функциям
  3. Предоставляет функцию copy для простого создания мелкого объекта копии.

Kotlin класс данных делает почти то же самое, что и Scala класс кейса :

  1. Определяет функции доступа (в основном, методы получения и установки)

  2. Естественно переопределяет хэш-код , toString и равно функциям

  3. Предоставляет функцию copy для простого создания мелких копий.

Основное различие между ними заключается в том, что Scala предоставляет более мощную функцию сопоставления с образцом по сравнению с Kotlin (на самом деле Kotlin не имеет реального сопоставления с образцом).

...