is 關(guān)鍵字
- is 用于在運(yùn)行時(shí)檢查對(duì)象是否屬于指定類型.
- 它返回一個(gè)布爾類型,表示對(duì)象是否是指定類型的實(shí)例
- is 可以用于 if 表達(dá)式 when 表達(dá)式和普通的條件語句.
val obj: Any = "Hello"
if (obj is String) {
// 對(duì)象是 String 類型
val strLength = obj.length
}
as 關(guān)鍵字
- as 用于條件轉(zhuǎn)換
- 它將對(duì)象轉(zhuǎn)換為指定類型,但如果轉(zhuǎn)換失敗,會(huì)拋出ClassCastException異常.
- 如果確定轉(zhuǎn)型成功,可以使用 as 進(jìn)行類型轉(zhuǎn)換
val obj: Any = "Hello"
val str: String = obj as String
- 如果不確定是否轉(zhuǎn)換成功,可以使用安全類型轉(zhuǎn)換操作符 as?
- as? 返回一個(gè)可空類型,如果轉(zhuǎn)換失敗 返回 null.
val obj: Any = "Hello"
val str: String? = obj as? String