给定参数时,when-statement按顺序将参数与分支匹配。匹配是通过==运算符完成的,该运算符执行空检查并使用该equals函数比较操作数。第一个匹配的将被执行。
when (x) { "English" -> print("How are you?") "German" -> print("Wie geht es dir?") else -> print("I don't know that language yet :(") }
when语句还知道一些更高级的匹配选项:
val names = listOf("John", "Sarah", "Tim", "Maggie") when (x) { in names -> print("我知道那个名字!") !in 1..10 -> print("Argument was not in the range from 1 to 10") is String -> print(x.length) // 由于智能转换,您可以在此处使用String函数 }