この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
kotlin:enumとsealed [2019/12/10 08:16] ips |
kotlin:enumとsealed [2019/12/10 08:18] (現在) ips [enumのは代数的データ型(ADT)] |
||
---|---|---|---|
ライン 60: | ライン 60: | ||
つまりGEARは3つの値しかない。 | つまりGEARは3つの値しかない。 | ||
- | 通常下記のような場合はELSEがなければコンパイルエラーとなるが、 | + | <wrap hi>通常下記のような場合はELSEがなければコンパイルエラーとなるが、 |
ELSEがなくても3つの条件をつければコンパイルが通る。 | ELSEがなくても3つの条件をつければコンパイルが通る。 | ||
- | (コンパイラーは3つしか条件がないことをわ分かっている。=閉集合) | + | (コンパイラーは3つしか条件がないことをわ分かっている。=閉集合)</wrap> |
ライン 80: | ライン 80: | ||
// LOW,MIDDLE,HI全てを条件にするかELSEがなければエラーになる。 | // LOW,MIDDLE,HI全てを条件にするかELSEがなければエラーになる。 | ||
val message = when (civic.gear){ | val message = when (civic.gear){ | ||
- | GEAR.LOW -> println("too slow") | + | GEAR.LOW -> "too slow" |
- | // GEAR.MIDDLE -> println("just right") | + | // GEAR.MIDDLE -> "just right" // コメントをはずせばELSE不要 |
- | // GEAR.HI -> println("too fast") | + | // GEAR.HI -> "too fast" // コメントをはずせばELSE不要 |
} | } | ||
println(message) | println(message) |