MST

星途 面试题库

面试题:Kotlin 控制流中 when 语句的使用

请说明 Kotlin 中 when 语句相较于 switch 语句有哪些优势,并给出一个使用 when 语句进行多条件判断的示例代码,例如根据一个表示星期几的数字(1 - 7)输出对应的星期名称。
44.6万 热度难度
编程语言Kotlin

知识考点

AI 面试

面试题答案

一键面试

Kotlin中when语句相较于switch语句的优势:

  1. 类型安全when语句在Kotlin中可以接受多种类型的参数,包括对象、可空类型等,而Java的switch语句在Java 7之前只能接受byteshortcharint及其包装类型、enum类型,Java 7开始支持String类型。例如在Kotlin中可以对自定义对象进行when判断。
  2. 简洁性when语句可以更简洁地表达复杂逻辑,它可以作为表达式返回值,这在很多场景下减少了额外变量的定义。例如在when中可以直接返回一个值而无需像switch那样使用多个break语句。
  3. 区间和集合匹配when语句支持区间匹配(如in关键字)和集合匹配(in关键字用于判断元素是否在集合中),而switch语句没有直接支持这些特性。

示例代码:

fun main() {
    val dayNumber = 3
    val dayName = when (dayNumber) {
        1 -> "星期一"
        2 -> "星期二"
        3 -> "星期三"
        4 -> "星期四"
        5 -> "星期五"
        6 -> "星期六"
        7 -> "星期日"
        else -> "无效的数字"
    }
    println(dayName)
}