Intereting Posts
Как сделать вызов удаленного удаленного вызова (RPC) в Котлине? Есть ли способ использовать значение по умолчанию для необязательного параметра при передаче null? как реализовать java-интерфейс SAM в Котлине? Последовательная анимация в TornadoFX? Как я могу получить имя свойства Kotlin? RxJava: Что случилось, если я не позвоню? Почему я не могу использовать интерфейс как общий тип в этом Rx-трансформаторе? Класс Котлина не найден при построении с дженкинсами Котлин в андроид-студии Ошибка плагина Kotlin: не удалось создать прокси-класс для класса org.jetbrains.kotlin.gradle.tasks.KotlinCompile частный модификатор видимости и подпакеты «Пустой набор тестов» в чистом модуле kotlin. (Спок / Android) Котлин – когда выражение с возвращаемым типом функции Kotlin и generics, реализующие абстрактный общий класс с общим массивом Внедрение TypeAdapterFactory с помощью TypeAdapter в Котлине

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

В документации 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 . Хотя они содержат состояние, они неизменяемы, поэтому они могут быть только одним экземпляром, каждый из которых используется повторно, и его не нужно постоянно воссоздавать.