kotlin noob在这里。这是来自kotlin网站的示例代码
fun main(args: Array<String>) {
val language = if (args.size == 0) "EN" else args[0]
println(when (language) {
"EN" -> "Hello!"
"FR" -> "Salut!"
"IT" -> "Ciao!"
else -> "Sorry, I can't greet you in $language yet"
})
}
现在,如果我将上述代码修改为以下内容:
fun main(args: Array<String>) {
println(when (if (args.size == 0) "EN" else args[0]) {
"EN" -> "Hello!"
"FR" -> "Salut!"
"IT" -> "Ciao!"
else -> "Sorry, I can't greet you in $language yet"
})
}
我收到错误。为什么? Isn&#t; t when
是否也应接受表达?在这种情况下if
条件的结果?
P.S我在https://try.kotlinlang.org/尝试了这个问题我得到的错误只是一个简单的error:
而没有进一步的解释
答案 0 :(得分:6)
是的,您可以使用when
中的表达式。您的第二个示例无法编译,因为您引用了不再定义的language
变量。