kotlin

19. when表达式

2019-09-26  本文已影响0人  写代码的向日葵

1.正常使用

fun main(args: Array<String>) {
    val age = 15
    println(todo(age))
}

fun todo(age: Int) = when (age) {
    7 -> "开始上小学"
    12 -> "开始上中学"
    15 -> "开始上高中"
    18 -> "开始上大学"
    else -> "开始上社会大学"
}

2.when加强

fun main(args: Array<String>) {
    val age = 15
    println(todo(age))
}

fun todo(age: Int) = when (age) {
    in 1..6 -> "没有上小学"
    7->"开始上小学"
    in 8..11 -> "开始上中学"
    in 12..15 -> "开始上高中"
    in 16..18 -> "开始上大学"
    else -> "开始上社会大学"
}

相比java,区间更加方便

3.kotlin中when表达式原理

可以看到编译后的java代码如下:

image.png
简单的when表达式通过switch语句来实现,复杂的when表达式通过if-else来实现

4.when表达式不带参数

fun main(args: Array<String>) {
    val age = 15
    println(todo(age))
}
fun todo(age: Int) =
    when {
        age == 7 -> "开始上小学"
        age == 12 -> "开始上高中"
        age == 15 -> "开始上大学"
        else -> "开始上社会大学"
    }

5.when表达式返回值

fun main(args: Array<String>) {
    val age = 15
    println(todo(age))
}

fun todo(age: Int): String {
    return when {
        age == 7 ->{
            10//写"开始上小学后面会报错"
            "开始上小学"
        }
        age == 12 -> "开始上高中"
        age == 15 -> "开始上大学"
        else -> "开始上社会大学"
    }
}

when表达式的返回值在大括号最后一行

上一篇 下一篇

猜你喜欢

热点阅读