Kotlin的基礎知識
阿新 • • 發佈:2018-11-11
當某個變數的值可以為 null 的時候,必須在宣告處的型別後新增 ?
來標識該引用可為空。
如果 str
的內容不是數字返回 null:
fun parseInt(str: String): Int? { // …… }
is 運算子檢測一個表示式是否某型別的一個例項。 如果一個不可變的區域性變數或屬性已經判斷出為某型別,那麼檢測後的分支中可以直接當作該型別使用,無需顯式轉換:
fun getStringLength(obj: Any): Int? { if (obj is String) { // `obj` 在該條件分支內自動轉換成 `String`return obj.length } // 在離開型別檢測分支後,`obj` 仍然是 `Any` 型別 return null } 或者 fun getStringLength(obj: Any): Int? { if (obj !is String) return null // `obj` 在這一分支自動轉換為 `String` return obj.length } 或者 fun getStringLength(obj: Any): Int? { // `obj` 在 `&&` 右邊自動轉換成 `String` 型別if (obj is String && obj.length > 0) { return obj.length } return null }
使用for 迴圈
val items = listOf("apple", "banana", "kiwifruit") for (item in items) { println(item) }
while 迴圈
val items = listOf("apple", "banana", "kiwifruit") var index = 0 while(index < items.size) { println("item at $index is ${items[index]}") index++ }
when 使用
fun describe(obj: Any): String = when (obj) { 1 -> "One" "Hello" -> "Greeting" is Long -> "Long" !is String -> "Not a string" else -> "Unknown" }
使用 in 運算子來檢測某個數字是否在指定區間內:
val x = 10 val y = 9 if (x in 1..y+1) { println("fits in range") }