乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      kotlin之變量的可空與非空

       丹楓無(wú)跡 2020-09-23

      版權(quán)聲明:本文為xing_star原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處!

      本文同步自http:///archives/218

      kotlin之變量的可空與非空

      上面一篇文章,介紹了kotlin的變量與常量,以及修飾為常量或者是變量的評(píng)估標(biāo)準(zhǔn)。本篇文章主要想說(shuō)的是一個(gè)變量的可空與非空。從字面意思上來(lái)看,可空就是允許變量的值是null,非空就是不允許變量的值是null。

      那么怎么知道一個(gè)變量應(yīng)該被設(shè)置為可空的還是非空的呢?

      一般而言,對(duì)于集合類,比如List或者是MutableList,直接設(shè)置為非空類型就好了。比如private var list: MutableList<String> = mutableListOf()

      對(duì)于普通的Model或者是Android中的View或Fragment,設(shè)置為可空就好,它們一般是在后續(xù)的程序流程中被賦值的。比如View類,一個(gè)TextView或ImageView需要在onCreate()方法體內(nèi)被賦值,在此之前,是不可能知道它的值的,所以,我們一般這樣聲明,private var textView: TextView? = null 。 Fragment也是一樣的,我們?cè)陬惖某蓡T變量里面只能做一個(gè)申明,具體的賦值,是在Android Activity生命周期方法中,所以,寫法是這樣的。private var fragment: Fragment? = null。

      如果對(duì)于普通Model或者是View這樣的類型,不想設(shè)置為可空,那么也是有辦法的,比如委托的方式,以及l(fā)ateinit的方式。但是一般情況下,還是設(shè)置為可空。除非你真的想要非空,才設(shè)置為非空類型,非空類型如何聲明呢,舉個(gè)String類型的例子,private var content: String = “hello”

      如果大家有真正在生產(chǎn)環(huán)境中實(shí)踐過(guò)kotlin的話,那么應(yīng)該很有感觸,會(huì)碰到一些別扭的地方,比如textView?.setOnClickListener{//todo} textView?.text = “hello”類似這樣的代碼塊。我們明確的知道textView不會(huì)為空,但是由于語(yǔ)法的原因,一旦聲明為可空,后面就必須帶上?.的判斷代碼。這個(gè)我們?cè)傧乱黄o出一種解決辦法,來(lái)規(guī)避View的這種問(wèn)題,將View定義為非空類型。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多