一、型別的檢查與轉換
1.1、型別檢查
is 與 !is 操作符用於在執行時檢查物件是否符合給定型別:
1.2、智慧型轉換
在許多情況下,不需要在 kotlin 中使用顯式轉換操作符,因為編譯器跟蹤不可變值的 is 檢查以及顯式轉換,並在需要時自動插入安全的轉換
例如,對於以下例子來說,當判斷 value 為 string 型別通過時,就可以直接將 value 當做 string 型別變數並呼叫其內部屬性
編譯器會指定根據上下文環境,將變數智慧型轉換為合適的型別
1.3、不安全的轉換操作符
如果轉換是不可能的,轉換操作符 as 會丟擲乙個異常。因此,我們稱之為不安全的轉換操作符
需要注意的是,null 不能轉換為 string 變數,因為該型別不是可空的
因此如下轉換會丟擲異常
為了匹配安全,可以轉換的型別宣告為可空型別
1.4、安全的轉換操作符
可以使用安全轉換操作符 as? 來避免在轉換時丟擲異常,它在失敗時返回 null
Kotlin技術分享 with與apply函式
1.1 with函式 with函式用於對同乙個物件執行多次操作而不需要反覆把物件的名稱寫出來 例如,為了構建乙個包含指定內容的字串,需要先後如下呼叫 改為通過 with 函式來構建的話會 會簡潔許多 with 結構其實是乙個接受兩個引數的函式,在這個例子中就是乙個 stringbuilder 和乙個...
Kotlin研發第十八彈 型別檢查和自動轉換
我們可以執行是通過上面兩個操作符檢查乙個物件是都是某個特定型別 判斷當前資料是否是某種型別 funjudgetypetest 輸出 2很多情形需要使用費明確的型別,編譯器會跟蹤is檢查靜態變數,並在需要的時候自動插入安全轉換 fun isstring str any 編譯器足夠智慧型如何轉換是安全的...
kotlin中的空指標檢查問題
android系統上崩潰率最高的異常型別就是空指標異常。我們需要知道的是 空指標是一種不受程式語言檢查的執行時異常,只能有程式設計師主動通過邏輯判斷來避免。舉個例子,對於一段簡單的呼叫引數的j a 我們要使 安全性更高,更穩妥的做法就是再呼叫引數的方法之前先進行乙個判空處理。如下 public vo...