Kotlin基础六之再谈'if' 'when'
Kotlin基础六之再谈’if’ ‘when’
博主之前的文章提到过if是个具有返回值的表达式而不是一个statement。所以,在kotlin中,函数还可以这么写:
fun eval(e: Any): Int =
if (e is Int) {
e.toInt()
} else {
throw IllegalArgumentException("Unknown type.")
}
fun main(args: Array<String>) {
println(eval(100))
println(eval("200"))
}
//result:
> 100
> Exception in thread "main" java.lang.IllegalArgumentException: Unknown type. 看出来什么了吗?函数没有return语句也能返回值,原因就是因为if是个带有值的表达式。
我们说when可以替代if-else-if链,因此,这么做也是可以的:
fun eval(e: Any): Int =
when(e) {
is Int -> e.toInt()
else -> throw IllegalArgumentException("Unknown type.")
} 在kotlin中已经没有了三目运算符,而是用if (a > b) a else b来替代了。
查看18道真题和解析