美文网首页kotlin
19. when表达式

19. when表达式

作者: 写代码的向日葵 | 来源:发表于2019-09-26 01:20 被阅读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表达式的返回值在大括号最后一行

    相关文章

      网友评论

        本文标题:19. when表达式

        本文链接:https://www.haomeiwen.com/subject/zxcguctx.html