ユーザ用ツール

サイト用ツール


サイドバー

kotlin:enumとsealed

以前のリビジョンの文書です


enumとsealed

enumクラス

GEARクラスのLOW,MIDDLE,HIというインスタンスということを宣言している。

enumの基本

enum class GEAR(){
    LOW,
    MIDDLE,
    HI
}
fun main(){
    println(GEAR.HI)
}
 ↓
HI

enumのコンストラクタ

enum class GEAR(val speed:Int){ // クラスなのでコンストラクタにプロパティの宣言ができる。
    LOW(10),
    MIDDLE(60),
    HI(100)
}
fun main(){
    println(GEAR.HI.speed)
}
 ↓
100

enumの関数宣言

enum class GEAR(val speed:Int){
    LOW(10),
    MIDDLE(60),
    HI(100); // 「;」で区切る
    // クラスなので関数宣言ができる
    fun Accelerator(){ 
        println(speed)
    }
}
fun main(){
    GEAR.HI.Accelerator()
}
 ↓
100

enumの条件ではelseが不要

GEARクラスにはLOW,MIDDLE,HIしかないことがわかっているのでIFやWHENでELSEが不要となる。

enum class GEAR(val speed:Int){
    LOW(10),
    MIDDLE(60),
    HI(100);
    fun Accelerator(){
        println(speed)
    }
}

class CAR(val gear: GEAR){
}

fun main(){
    val civic = CAR(GEAR.MIDDLE)
    when (civic.gear){
        GEAR.LOW -> println("too slow")
        GEAR.MIDDLE -> println("just right")
        GEAR.HI -> println("too fast")
    }
}
kotlin/enumとsealed.1575931333.txt.gz · 最終更新: 2019/12/10 07:42 by ips