if 表达式
// if 表达式,if 既可以作为条件跳转进行流程控制,又可以返回一个值。
fun testIf(obj: Any) {
if (obj is Long) {
return
}
val ifVal =
if (obj is String) {
println("Obj is a String")
1
} else if (obj is Int) {
println("Obj is a Integer")
2
} else {
println("Whatever")
3
}
val val1 = if (obj is Int) 1 else 2
println(val1)
}
when 表达式
when 类似于 Java 的 switch ,既可以进行条件分支跳转,又可以返回一个值
when 表达式可以使用各种表达式,包括类型判断、区间判断、值判断等
fun testWhen(obj: Any) {
val value: Any = when (obj) {
// if (obj is String)
is String -> {
println("obj is a String")
obj
}
// if (obj == 1 || obj == 2 || obj == 3)
1, 2, 3 -> {
println("obj is a Int in [1,3]")
2
}
in 1..10 -> {
println("obj is a Int in [1,10]")
}
else -> {
println("whatever")
0
}
}
}