以下のような Rank クラスがあるとして、
- enum class Rank {
- GOLD, SILVER, BRONZE
- }
enum class Rank {
GOLD, SILVER, BRONZE
}
ランクなしという意味の null を含むリストを作りたいとします。
↓ 作りたいリスト
- val list: List<Rank?> = ...
- println(list)
val list: List<Rank?> = ...
println(list) // [null, GOLD, SILVER, BRONZE]
Rank の一覧は Rank.values() で取れるので
- val ranks: Array<Rank> = Rank.values()
- println(ranks.joinToString())
val ranks: Array<Rank> = Rank.values()
println(ranks.joinToString()) // GOLD, SILVER, BRONZE
listOf(null) で null だけのリストを作って + で ranks と合わせたリストを作ることもできますが、
- val list: List<Rank?> = listOf(null) + ranks
val list: List<Rank?> = listOf(null) + ranks
スプレット演算子を使うと余計なリスト(= null だけのリスト)を作らずに済みます。
- val list: List<Rank?> = listOf(null, *ranks)
val list: List<Rank?> = listOf(null, *ranks)