1 kotlin類型轉(zhuǎn)換as as?
1 子類實(shí)例轉(zhuǎn)為父類實(shí)例,自動轉(zhuǎn)換成功
2 類型為父類型,引用實(shí)例的是子類的實(shí)例時(shí),將其轉(zhuǎn)換為父類,可以轉(zhuǎn)換成功
3 父類實(shí)例轉(zhuǎn)為子類型,報(bào)轉(zhuǎn)換異常,需要使用as?進(jìn)行安全轉(zhuǎn)換,轉(zhuǎn)換結(jié)果為null。

2 使用Kotlin的Observable監(jiān)聽屬性實(shí)時(shí)更新




Delegates.vetoable當(dāng)它的第二個參數(shù)為true時(shí),它才會替換掉舊值。
3 takeIf 如果需要判斷某個條件是否滿足,再決定是否可以賦值變量或執(zhí)行某項(xiàng)任務(wù)。takeIf函數(shù)需要判斷l(xiāng)ambda中提供的條件表達(dá)式,給出true或false結(jié)果:
如果判斷結(jié)果為true,從takeIf函數(shù)返回接收者對象。
如果是false,則返回null。

takeUnless跟takeIf相反,只有判斷你給定的條件結(jié)果是false時(shí),takeUnless才會返回原始接收者對象。
4 kotlin之常用集合操作符









這里最好看下源碼這個有點(diǎn)繞。