欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kotlin空安全空類(lèi)型淺談

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

正文

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

// name為不可為空的變量, 不能賦值為null ,若有判斷 if(name==null) 無(wú)意義,因?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ù)使用方法,在返回類(lèi)型后同時(shí)加?

var name:String?="abc"

fun getNameLength():String?{
      return name
}

三、let操作符

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

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

常規(guī)寫(xiě)法:

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

用let操作符寫(xiě)法:

    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)寫(xiě)法 if(name==null) -1 else name.length 要簡(jiǎn)介

2、!!

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

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

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

3、as、as?

類(lèi)型轉(zhuǎn)換

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

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

var name:String?= 12 as String

可見(jiàn)12 轉(zhuǎn)換String 類(lèi)型異常

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

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

總結(jié):

拋出異常的 !! as 盡量少用,用as? ?. ?: let來(lái)代替

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

相關(guān)文章

  • Android實(shí)現(xiàn)自動(dòng)填充短信驗(yàn)證碼

    Android實(shí)現(xiàn)自動(dòng)填充短信驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)自動(dòng)填充短信驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android之來(lái)電秀實(shí)戰(zhàn)示例

    Android之來(lái)電秀實(shí)戰(zhàn)示例

    這篇文章主要為大家介紹了Android之來(lái)電秀實(shí)戰(zhàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Android開(kāi)源框架的SlidingFragment的使用示例

    Android開(kāi)源框架的SlidingFragment的使用示例

    今天小編就為大家分享一篇關(guān)于Android開(kāi)源框架的SlidingFragment的使用示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Kotlin標(biāo)準(zhǔn)函數(shù)與靜態(tài)方法基礎(chǔ)知識(shí)詳解

    Kotlin標(biāo)準(zhǔn)函數(shù)與靜態(tài)方法基礎(chǔ)知識(shí)詳解

    Kotlin中的標(biāo)準(zhǔn)函數(shù)指的是Standard.kt文件中定義的函數(shù),任何Kotlin代碼都可以自由地調(diào)用所有的標(biāo)準(zhǔn)函數(shù)。例如let這個(gè)標(biāo)準(zhǔn)函數(shù),他的主要作用就是配合?.操作符來(lái)進(jìn)行輔助判空處理
    2022-11-11
  • android之計(jì)時(shí)器(Chronometer)的使用以及常用的方法

    android之計(jì)時(shí)器(Chronometer)的使用以及常用的方法

    在Android的SDK中,為我們提供了一個(gè)計(jì)時(shí)器,這個(gè)計(jì)時(shí)器稱(chēng)為Chronometer,我們可以成它為Android的一個(gè)組件,同時(shí)它也具備自己獨(dú)有的方法
    2013-01-01
  • Android View教程之自定義驗(yàn)證碼輸入框效果

    Android View教程之自定義驗(yàn)證碼輸入框效果

    這篇文章主要給大家介紹了關(guān)于Android View教程之自定義驗(yàn)證碼輸入框效果的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Android中Retrofit 2.0直接使用JSON進(jìn)行數(shù)據(jù)交互

    Android中Retrofit 2.0直接使用JSON進(jìn)行數(shù)據(jù)交互

    本篇文章主要介紹了Android中Retrofit 2.0直接使用JSON進(jìn)行數(shù)據(jù)交互,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-08-08
  • Android仿淘寶物流信息TimeLineView

    Android仿淘寶物流信息TimeLineView

    這篇文章主要為大家詳細(xì)介紹了Android仿淘寶物流信息TimeLineView的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Kotlin淺析延遲初始化與密封類(lèi)的實(shí)現(xiàn)方法

    Kotlin淺析延遲初始化與密封類(lèi)的實(shí)現(xiàn)方法

    Kotlin語(yǔ)言的許多特性,包括變量不可變,變量不可為空,等等。這些特性都是為了盡可能地保證程序安全而設(shè)計(jì)的,但是有些時(shí)候這些特性也會(huì)在編碼時(shí)給我們帶來(lái)不少的麻煩,下面我們來(lái)了解延遲初始化和密封類(lèi)的特點(diǎn)
    2022-08-08
  • Android開(kāi)發(fā)之splash界面下詳解及實(shí)例

    Android開(kāi)發(fā)之splash界面下詳解及實(shí)例

    這篇文章主要介紹了 Android開(kāi)發(fā)之splash界面下詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03

最新評(píng)論