Kotlin学习笔记-03

86 阅读1分钟

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
         }
 ​
     }
 }