[英]What is the purpose of a Object Declaration inside a Sealed Class in Kotlin?
在Kotiln文檔中,他們給出了密封類的以下示例:
sealed class Expr {
class Const(val number: Double) : Expr()
class Sum(val e1: Expr, val e2: Expr) : Expr()
object NotANumber : Expr()
}
什么是使用delcaring的NotANumber
作為對象聲明(單身?)這里? 為什么不寫一個class NotANumber : Expr()
?
由於它不包含重要值,因此可以在任何地方重用它的單個實例。 這樣可以節省您需要的對象的創建成本。
另一個例子是Kotlin的Unit
,它也只是一個object
。
這只是如何避免創建垃圾收集器必須清理的不必要實例的示例之一。 另一個例子是Java BigInteger
類如何為常量(如ZERO
和ONE
提供最終靜態字段。 雖然它們包含狀態,但它們是不可變的,因此它們可以只是一個實例,每個實例都可以重用,而不必一直重新創建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.