Intereting Posts
Локальная трансляция не обновляет пользовательский интерфейс Пытается создать простой recyclerView в Kotlin, но адаптер не применяется должным образом GSON не может десериализовать класс Kotlin с пользовательским геттером Как проверить общий тип в Kotlin OnErrorNotImplementedException с использованием RxJava2 и Retrofit2 Mosby MVI Количество цифр в Котлине Доступ к статическому полю из Java-суперкласса Неразрешенная ссылка на функцию в Kotlin Android Равномерное авторазведение нескольких текстовых элементов Не удалось построить Gradle с помощью Kotlin, Scala и Java Kotlin + SpringBoot 2.0.0-M4 не удалось использовать контекст приложения загрузки (BeanCreationException) «Использование стиля Builder методами, которые возвращают Unit» на сайте Kotlin, запутывает меня Оператор as и ClassCastException Как обрабатывать доступность в пользовательском представлении, когда он не предназначен для обработки кликов? Проблема с kotlin для Android

Какова цель Декларации объекта внутри герметичного класса в Котлине?

В документации Kotiln они приводят следующий пример для закрытых классов:

sealed class Expr { class Const(val number: Double) : Expr() class Sum(val e1: Expr, val e2: Expr) : Expr() object NotANumber : Expr() } 

Каким будет использование деления NotANumber как объявления объекта (singleton?) Здесь? Почему бы просто не написать class NotANumber : Expr() ?

Solutions Collecting From Web of "Какова цель Декларации объекта внутри герметичного класса в Котлине?"

Поскольку он не содержит значимого значения, единственный экземпляр его может быть использован повсеместно. Это экономит вам стоимость создания этого объекта там, где вам это нужно.

Другим примером этого может быть Unit Котлина, которое также является просто object .

Это всего лишь один из примеров того, как вы можете избежать создания ненужных экземпляров, которые сборщик мусора затем должен очистить. Другим примером может служить то, как класс Java BigInteger имеет конечные статические поля для констант, таких как ZERO и ONE . Хотя они содержат состояние, они неизменяемы, поэтому они могут быть только одним экземпляром, каждый из которых используется повторно, и его не нужно постоянно воссоздавать.