Kotlin空指標安全

2021-09-27 11:49:07 字數 763 閱讀 4698

1.可為null型別

在kotlin中通常我們直接定義的型別是不可以為null的,如下:

fun main()

如果想要允許為null,我們需要在變數的型別後面加上乙個?號。如下:

fun main

(args: array

)

這樣就不會編譯報錯了

2.安全呼叫

上面的例子中,如果呼叫s.length的話,這將是不安全的,編譯器直接報錯

private fun testnullsafe()

")}

在println中的小點 . 會報這樣的錯誤

(只有安全(2)或非空斷言(.)呼叫才允許在型別為string的可空接收器上呼叫?)
當s為空時,返回null。如果s可能為空,使用s獲取它的長度,有可能會導致空指標異常,為了解決這個問題,在s後面新增?號。

這樣就可以保證不出現空指標異常。當s為空時,停止獲取它的length,直接返回null。

所以:

private fun testnullsafe()

")}

使用雙!!感嘆號,代表的是當前字串一定不為空,系統不會幫你檢查了。

private fun testnullsafe()

")}

如果這裡讓s=null編譯時可以通過 但執行時會報空指標異常

Kotlin新手入坑 空指標檢查 ST

變數延遲初始化 lateinit 抓住今天,盡可能少的信賴明天。喝湯能補 如果進行過android專案開發者,經常會遇到空指標的問題,雖然解決方法不難,但是這個問題經常會導致程式崩潰,對應的到生活中口袋就瘦了。kotlin預設所有的引數和變數都是不可為空的。當然也提供了一套可空的型別系統。上 fun...

kotlin中的空指標檢查問題

android系統上崩潰率最高的異常型別就是空指標異常。我們需要知道的是 空指標是一種不受程式語言檢查的執行時異常,只能有程式設計師主動通過邏輯判斷來避免。舉個例子,對於一段簡單的呼叫引數的j a 我們要使 安全性更高,更穩妥的做法就是再呼叫引數的方法之前先進行乙個判空處理。如下 public vo...

Kotlin學習2 10 空值處理

在程式開發過程中,經常會遇到空指標異常的問題,如果對這個問題處理不當還可能會引起程式的崩潰,因此在kotlin中,為了避免出現空指標異常的問題。引入了null機制。kotlin變數分成兩種型別,一種是可空型別的變數,一種是非空型別的變數。一般情況下,乙個變數預設是非空型別。當某個變數的值可以為空時,...