Taiwan Kotlin User Group

Logo

Taiwan Kotlin User Group 的網站,在台灣推廣 Kotlin 程式語言,舉辦相關活動。如果對 Kotlin 有興趣,想要多瞭解一些,歡迎來我們的社群一起聚會!

View My GitHub Profile

Kotlin Sealed Class 範例

宣告 sealed class

sealed class Mammal(val name: String) 

特性

sealed class 限制只能被同一個 package 的類別繼承

package demo

import Mammal

class Demo(name: String) : Mammal(name) // 編譯錯誤

由於這個特性

sealed class 跟 enum 一樣

可以讓編譯器確定資料的可能個數

如果在條件式內列舉所有可能

就不需要宣告 else

class Cat(name: String) : Mammal(name)
class Dog(name: String) : Mammal(name)

fun greetMammal(mammal: Mammal): String {
    return when (mammal) {                                          
        is Dog -> "GoodBoy ${mammal.name}"
        is Cat -> "Hello ${mammal.name}"
    }
}


想看更多範例嗎?

可以看看

或加入 kotlin.tips 的 Kotlin 讀書會