日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

kotlin中学习笔记——null

發(fā)布時(shí)間:2024/4/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 kotlin中学习笔记——null 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

指定一個(gè)變量可null是通過在它的類型后面加?號,如 val a: String? = null (注意這個(gè)Int也可為空是因?yàn)樵趉otlin中一切都是對象,包括在java中的基本類型) 一個(gè)可null類型,沒有進(jìn)行檢查前不能使用,如下代碼會編譯出錯(cuò) val a: String? = null a.subString(2)
? kotlin另外一個(gè)特性是當(dāng)我們檢查了一個(gè)可null類型,這個(gè)對象會自動轉(zhuǎn)型成不可null類型,這就是Kotlin編譯器的智能轉(zhuǎn)換,如 val a: String? = null if(a != null){a.subString(2) } 在if語句中,a從Int?變成了Int,所以可以直接使用。但是在if代碼外,則需要重新檢查。 當(dāng)然這僅僅在變量當(dāng)前不能被改變的前提下,如果變量可能被另外線程改變就會變得復(fù)雜。 如果我們處處去做判斷,代碼會臃腫起來,kotlin中有更簡潔的處理方式,如: val a: String? = null a?.subString() 我們使用安全訪問符"?",只有當(dāng)不為null的時(shí)候才執(zhí)行這行代碼。否則不會做任何事情。 但是注意如果有賦值行為的話,a為null的話會返回null,如: val a: String? = null val s = a?.subString() s會被賦值為null kotlin中還有一種_Elvis operator_(?:)操作符,使用如下: val a: String? = null val s = a?.subString(2) ?: "" val s = a?.subString(2) ?: return false val s = a?.subString(2) ?: throw IllegalStateException() 在kotlin中return和throw都是表達(dá)式,所以可以用在_Elvis operator_操作符右邊 當(dāng)我們確定一個(gè)非null變量不為null,我們可以使用"!!"來強(qiáng)制跳過檢查正常編譯,如: val a: String? = null a!!.subString(2) 當(dāng)然不推薦經(jīng)常使用,因?yàn)槭俏唇?jīng)檢驗(yàn)的存在null指針崩潰的可能。 在android新版本中,我們可以用@Nullable和@NotNull注解來辨別參數(shù)是否可以為空或者函數(shù)返回是否可以為空。

?

超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的kotlin中学习笔记——null的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。