最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Kotlin空安全空類型淺談

 更新時(shí)間:2022年06月23日 15:09:10   作者:聽著music睡  
這篇文章主要為大家介紹了Kotlin空安全空類型的實(shí)用技巧淺談,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

首先非空變量和可空變量的區(qū)別:

// name為不可為空的變量, 不能賦值為null ,若有判斷 if(name==null) 無意義,因?yàn)榭隙ú粸閚ull
var name : String = ""
// role 為可空變量
var role : String? = ""

非空變量賦值為Null為報(bào)如下錯(cuò)誤:

一、判斷可空變量是否為null的方式

1、

        var name : String ?= ""
        if (name == null){
            Log.i(Tag,"name==null")
        }else{
            Log.i(Tag, "name!=null")
        }

2、

?.的意思為若name為null 。則返回null

        var name : String ?= "abc"
        Log.i(Tag,"name="+name?.length)

二、涉及到返回可空值的函數(shù)使用方法,在返回類型后同時(shí)加?

var name:String?="abc"

fun getNameLength():String?{
      return name
}

三、let操作符

用法:變量?.let{ ... } , 作用為忽略null的情況

例如篩選出一個(gè)集合非空的元素集合

常規(guī)寫法:

    fun logUnNullList(arr:Array<String>):Unit{
        for (item in arr){
            if (arr==null){
                continue
            }else{
                Log.i(Tag,"非空元素為->"+item)
            }
        }
    }

用let操作符寫法:

    fun logUnNullList(arr:Array<String>):Unit{
        for (item in arr){
            item?.let {Log.i(Tag,"非空元素為->"+item)  }
        }
    }

四、Evils操作符(?: !! as)

1、?:

對(duì)于一個(gè)可空變量的使用,若當(dāng)該變量為空的時(shí)候賦予一個(gè)特定值使用

var name:String?="abc"
var nameLength:Int = 0
nameLength = name?.length?:-1  // 取name的length ,若name為null,則nameLength的值為-1

這樣要比傳統(tǒng)寫法 if(name==null) -1 else name.length 要簡介

2、!!

在一個(gè)可空變量使用的時(shí)候后面加上!! ,則當(dāng)該變量為null的時(shí)候拋出空指針異常

var name:String?=null
nameLength = name!!.length

此時(shí)name為null ,因?yàn)槭褂昧?! ,則拋出空指針異常

3、as、as?

類型轉(zhuǎn)換

當(dāng)使用as的時(shí)候若類型轉(zhuǎn)換失敗則拋出類型轉(zhuǎn)換(ClassCastException)異常

當(dāng)使用as?的時(shí)候若類型轉(zhuǎn)換失敗則返回null,不會(huì)拋出異常

var name:String?= 12 as String

可見12 轉(zhuǎn)換String 類型異常

當(dāng)使用as?的時(shí)候

var name:String?= 12 as? String
Log.i(Tag,"name="+ name)
// 打印日志: name=null

總結(jié):

拋出異常的 !! as 盡量少用,用as? ?. ?: let來代替

以上就是Kotlin空安全空類型淺談的詳細(xì)內(nèi)容,更多關(guān)于Kotlin空安全空類型的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

东乌珠穆沁旗| 南投县| 永康市| 岐山县| 永安市| 祁东县| 盐源县| 南溪县| 昌江| 柘荣县| 将乐县| 桑植县| 安国市| 山西省| 建瓯市| 高碑店市| 津南区| 耿马| 略阳县| 汨罗市| 平湖市| 山阴县| 平武县| 林甸县| 色达县| 焦作市| 临城县| 浦北县| 北宁市| 区。| 胶州市| 唐山市| 稻城县| 明水县| 冕宁县| 额济纳旗| 思南县| 盘锦市| 靖西县| 海阳市| 璧山县|