iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0

延續前一天的討論,前一天討論的都是變數的 null 處理,今天來討論 object 對 null 的處理!

但若是特殊場合必須為 null 呢, kotlin 也是有提供特殊符號來允許指定的 type nullable 。

? : Nullable Type
!! : Not-null assertions

當我們今天宣告的 type 是可以為 null 時,在 type 後加個 ? ,後續賦予 null 就不會報錯了。

以上是變數的 nullable ,而物件也可以使用 ? !! 兩個符號,接下來介紹一下物件使用的方式。

fun main() {
  car?.drive()
}

既然 car 有個 ? ,表示 car 可能為 null 可能為 NotNull ,而這兩種情形所 return 的東西會不一樣。讓我們來看看這一行簡單程式碼是怎麼運行的吧!

若 car 不為 null ,則會正常執行 drive 。
若 car 為 null ,則會 return null 。

若要翻譯成用 if..else 的話。

fun main() {
  if (car != null) {
    car.drive()
  }
}

而 !! 也是用來處理 null 的符號,這是在告訴 IDE ,我非常確定我所傳入的值絕非 null ,而 IDE 就不會去做 null check ,但若使用了 !! 但卻沒有管控好不小心為 null ,則會和一開始的 Java 一樣報錯了。


Kotlin 語法討論告一段落,剩下的篇幅將會留給 Andriod ,介紹一些 Android 的元件,後續會再帶一些實作!


上一篇
[Day 10] Kotlin 語法 - Nullable? Kotlin V.S Java (1)
下一篇
[Day 12] Android 實作 - Hello World
系列文
Android心得筆記×Kotlin語法初探 不是新手村 是嬰兒村30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言