首發(fā)于公眾號: DSGtalk1989
3.條件控制
-
if 表達(dá)式
kotlin中可以更加簡便的使用 if語句進(jìn)行賦值
var i = if(a > b) 1 else 2 var i2 = if(a > b) { print("Choose a") a } else { print("Choose b") b }
-
when的使用
when
在kotlin中勃刨,就是用來替代switch
的钥组,如下:when (x) { 1,0 -> print("1 or 0") in 1..10 -> print("x is in the range") in validNumbers -> print("x is valid") !in 10..20 -> { print("x is outside the range") } else -> print("none of the above") } fun hasPrefix(x: Any) = when(x) { is String -> x.startsWith("prefix") else -> false } when { x.isOdd() -> print("x is odd") x.isEven() -> print("x is even") else -> print("x is funny") }
一般和lambda結(jié)合使用羞海,箭頭左側(cè)代表條件忿等,箭頭右側(cè)代表返回結(jié)果,可以是代碼段聊训,可以是代碼塊倔喂,
else
就是switch
中的default
。上面極端代碼比較易懂糖荒,基本大家看了就知道怎么回事了 -
map
-
map初始化
一般我們使用
mapOf
方法進(jìn)行初始化杉辙,方法中使用to
關(guān)鍵字代表關(guān)系```js val map = mapOf("a" to 1, "b" to 2, "c" to 3) ```
-
map遍歷
kotlin中遍歷map將變得特別方便
var map = mapOf( "1" to 2, "3" to 4) for((k,v) in map){ ... }
-
map訪問
我們直接使用
["key"]
的形式訪問map
中的元素,在kotlin中我們比較少的去使用get
方法捶朵,因為它很好的幫我們做了封裝蜘矢,基本所有的集合類都可以直接通過[]
的方式進(jìn)行訪問。 -
Map與MutableMap
在java中综看,
Map
是可以put
和get
的品腹,但是在kotlin中,Map
是只讀的映射红碑,需要修改映射我們要使用到MutableMap
舞吭。而一般獲得到MutableMap
最容易的方式就是調(diào)用Map
的toMutableMap
方法。因為通過mapOf
獲得的方法都是Map
析珊。這里需要著重說的一點是羡鸥,如果我們直接通過系統(tǒng)自動的識別來認(rèn)定屬性的話,目前的幾種封裝
Map
都是可變Map
忠寻,前面說過一般能用不可變的Map
惧浴,就不用可變的集合類。@SinceKotlin("1.1") public actual typealias ArrayList<E> = java.util.ArrayList<E> @SinceKotlin("1.1") public actual typealias LinkedHashMap<K, V> = java.util.LinkedHashMap<K, V> @SinceKotlin("1.1") public actual typealias HashMap<K, V> = java.util.HashMap<K, V> @SinceKotlin("1.1") public actual typealias LinkedHashSet<E> = java.util.LinkedHashSet<E> @SinceKotlin("1.1") public actual typealias HashSet<E> = java.util.HashSet<E>
我們看到奕剃,這幾個kotlin的對象衷旅,最終都是來自于java類,當(dāng)然是即可訪問又可以修改啦纵朋。
-
Kotlin學(xué)習(xí)筆記之 1 基礎(chǔ)語法
Kotlin學(xué)習(xí)筆記之 2 基本數(shù)據(jù)類型
Kotlin學(xué)習(xí)筆記之 4 循環(huán)控制
Kotlin學(xué)習(xí)筆記之 8 擴(kuò)展
Kotlin學(xué)習(xí)筆記之 9 數(shù)據(jù)類與密封類
Kotlin學(xué)習(xí)筆記之 12 對象表達(dá)式和對象聲明
Kotlin學(xué)習(xí)筆記之 13 基礎(chǔ)操作符run芜茵、with、let倡蝙、also九串、apply
Kotlin學(xué)習(xí)筆記之 14 包與導(dǎo)入
Kotlin學(xué)習(xí)筆記之 18 函數(shù)
Kotlin學(xué)習(xí)筆記之 19 高階函數(shù)與 lambda 表達(dá)式
Kotlin學(xué)習(xí)筆記之 20 內(nèi)聯(lián)函數(shù)
Kotlin學(xué)習(xí)筆記之 21 解構(gòu)聲明
Kotlin學(xué)習(xí)筆記之 28 協(xié)程基礎(chǔ)
Kotlin學(xué)習(xí)筆記之 29 上下文與調(diào)度器
Kotlin學(xué)習(xí)筆記之 30 協(xié)程取消與超時
Kotlin學(xué)習(xí)筆記之 31 協(xié)程掛起函數(shù)的組合