When pada Kotlin
When merupakan salah satu kontrol percabangan di dalam Kotlin. When akan menjalankan kode yang berbeda berdasarkan nilai dari argument variabel.
val playerNumber = 20when (playerNumber) {
20 -> println("Ole Gunnar Solskjaer")
16 -> println("Roy Keane")
else -> println("No player used that number")
}
When tidak membutuhkan break statement karena when hanya akan memakai cabang pertama yang cocok dan setelah itu akan keluar dari when.
Cabang Else akan tercapai apabila semua cabang when lainnya tidak terpenuhi.
When sebagai statement
When sebagai statement tidak perlu menyertakan semua cabang argument yang mungkin. Mirip dengan switch pada Java.
val playerNumber = 11
when (playerNumber) {
11 -> println("Ryan Giggs")
20 -> println("Ole Gunnar Solskjaer")
}
When sebagai expression
Menggunakan return value dari when. Perlu menyertakan semua cabang argument yang mungkin.
val playerNumber = 20
val playerName = when (playerNumber) {
7 -> "David Beckham"
11 -> "Ryan Giggs"
16 -> "Roy Keane"
20 -> "Ole Gunnar Solskjaer"
else -> "No player used that number"
}
Mengkombinasi cabang when
Mengkombinasi cabang when dengan koma, sama seperti operator or.
val playerNumber = 7
val playerName = when (playerNumber) {
24, 7, 10 -> "David Beckham"
else -> "David Beckham never used these number"
}
Range pada cabang when
Menggunakan range pada when dengan memakai operator in.
val playerNumber = 7val playerName = when (playerNumber) {
7 -> "David Beckham"
11 -> "Ryan Giggs"
in 12..23 -> "Reserves Player"
else -> "No player used that number"
}
Autocasting pada when
Memakai operator is
when (view) {
is TextView -> println ("View is a TextView")
is RecyclerView -> println("View is a RecyclerView")
else -> println("View not supported")
}
When tanpa menggunakan argument
When juga dapat digunakan tanpa argument, untuk menentukan cabang yang cocok bisa menggunakan nilai dari suatu variabel.
when {
playerNumber == 7 -> println("David Beckham")
playerNumber in 12..23 -> println("Reserve Player")
playerName == "Roy Keane" -> println("Captain")
}
Kesimpulan
Pada artikel ini kita belajar beberapa contoh pemakaian when pada Kotlin.