中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

信譽(yù)好的揚(yáng)中網(wǎng)站建設(shè)app推廣軟件有哪些

信譽(yù)好的揚(yáng)中網(wǎng)站建設(shè),app推廣軟件有哪些,wordpress 仿站命令,開通建立企業(yè)網(wǎng)站Kotlin 中的屬性是使用var或val關(guān)鍵字聲明的。Late init 和 lazy 都是用來初始化以后要用到的屬性。 由于這兩個(gè)關(guān)鍵字都用于聲明稍后將要使用的屬性,因此讓我們看一下它們以及它們的區(qū)別。 Late Init 在下面的示例中,我們有一個(gè)變量 myClass&#xff0…

Kotlin 中的屬性是使用var或val關(guān)鍵字聲明的。Late init 和 lazy 都是用來初始化以后要用到的屬性。
由于這兩個(gè)關(guān)鍵字都用于聲明稍后將要使用的屬性,因此讓我們看一下它們以及它們的區(qū)別。

Late Init
在下面的示例中,我們有一個(gè)變量 myClass,該變量首先使用 lateinit 進(jìn)行初始化,然后稍后為其賦值。使用 isInitialized方法,我們能夠判斷該變量是否已初始化。

fun main() {MySchool().initializeClass()
}class MySchool {lateinit var myClass: Stringfun initializeClass() {println("Has my class started? " + this::myClass.isInitialized)myClass = "Science"println("Has my class started? " + this::myClass.isInitialized)}
}

當(dāng)我們運(yùn)行代碼塊時(shí),輸出將如下所示:

我們可以在第一行打印中看到,變量雖然已聲明,但尚未初始化,因此返回 false。為變量賦值后,它返回 true。
在這里插入圖片描述
Lazy
lazy 關(guān)鍵字初始化一個(gè)對象,只有在訪問它時(shí)才會(huì)創(chuàng)建該對象。

在下面的示例中,我們將延遲初始化 myPoem 變量。我們可以看到這個(gè)變量只有在調(diào)用的時(shí)候才被創(chuàng)建,第二次調(diào)用的時(shí)候使用的是和之前一樣的引用。

fun main() {var poem = MyPoem();println(poem.poemTitle);println("My Second Poem is Polly the sheep--"+poem.poemTitle);
}class MyPoem {val poemTitle: String by lazy {println("Billy The Goat")"Verse One"}
}

當(dāng)我們運(yùn)行代碼塊時(shí),輸出將如下所示:
在這里插入圖片描述

lateinit 和 lazy 的區(qū)別:

  1. lateinit 屬性不能為 nullable,但 lazy 屬性可以為 nullable。
//'lateinit' modifier is not allowed on properties of nullable types-compilation error
lateinit var myClass: String?
// no compilation error
val poemTitle: String? by lazy {println("Billy The Goat")"Verse One"
}
  1. Lateinit用于聲明可變變量,即使用關(guān)鍵字var,而lazy用于聲明不可變變量,使用關(guān)鍵字val。

  2. Late init不能用于聲明原始數(shù)據(jù)類型,如Int,而lazy可以用于聲明原始數(shù)據(jù)類型。

    //'lateinit' modifier is not allowed on properties of primitive type-compilation error
    private lateinit var myAge : Int
    
    //no compilation error
    val myAge by lazy {100
    }
    
  3. 延遲初始化是線程安全的,而lateinit沒有定義線程安全。

另一篇文章的總結(jié)

Lateinit 和 Lazy 有什么區(qū)別?

  1. 修飾符“l(fā)ateinit”僅限于可變(var)變量屬性,而修飾符“ lazy”專門用于只讀(val)屬性。

  2. 標(biāo)記為“l(fā)ateinit”的屬性可以在運(yùn)行時(shí)根據(jù)需要多次賦值,而標(biāo)記為“l(fā)azy”的屬性只能在第一次使用時(shí)賦值一次。

  3. 不可能將原始數(shù)據(jù)類型聲明為“l(fā)ateinit”屬性,而“惰性”屬性可以是原始數(shù)據(jù)類型或非原始數(shù)據(jù)類型。(比如 Int)

  4. 雖然無法確保“l(fā)ateinit”屬性的線程安全,但對于“惰性”屬性,我們可以選擇同步選項(xiàng),例如 SYNCHRONIZED、PUBLICATION 或 NONE。(這就是我們在使用 Singleton 設(shè)計(jì)模式時(shí)使用 lazy 的原因。)

  5. 與不能聲明為 nullable 的“l(fā)ateinit”屬性不同,“l(fā)azy”屬性可以定義為 nullable 或 non-nullable。

  6. 雖然“l(fā)ateinit”屬性不能有自定義的 getter,但“惰性”屬性包含一個(gè)代碼塊,該代碼塊在第一次調(diào)用該屬性時(shí)運(yùn)行。

  7. 在初始化之前嘗試訪問“l(fā)ateinit”屬性會(huì)導(dǎo)致指定未初始化屬性的明顯異常。另一方面,“惰性”屬性在初始化之前無法訪問。重要的是要注意,“惰性”屬性可以為 null,但它仍會(huì)在第一次訪問該屬性時(shí)被初始化。

lazy in Kotlin is useful in a scenario when we want to create an object inside a class, but that object creation is expensive and that might lead to a delay in the creation of the object that is dependent on that expensive object. So, we need to understand that the object will get initialized only when it is accessed for the first time, else it will not get initialized.

文章出處:

  1. https://medium.com/huawei-developers/kotlin-lateinit-vs-by-lazy-initialization-example-tutorial-c19d84216480

  2. https://medium.com/@wambuinjumbi/differences-between-lateinit-and-lazy-a8164330b93f

http://m.risenshineclean.com/news/58040.html

相關(guān)文章:

  • 四川建設(shè)廳官方網(wǎng)站文件下載企業(yè)網(wǎng)絡(luò)營銷策略
  • p2p網(wǎng)站建設(shè) 上海網(wǎng)店代運(yùn)營騙局
  • 做校園網(wǎng)站 怎么備案百度推廣在哪里能看到
  • 網(wǎng)站商城定制網(wǎng)站建設(shè)蘇州seo營銷
  • 昆明網(wǎng)站開發(fā)多少錢免費(fèi)域名注冊平臺(tái)
  • 做鞋子有什么好網(wǎng)站好北京seo關(guān)鍵詞排名
  • 關(guān)于做ppt的網(wǎng)站有哪些內(nèi)容杭州百度seo代理
  • 織夢網(wǎng)站文章內(nèi)容模板信息發(fā)布推廣平臺(tái)
  • 能訪問各種網(wǎng)站的瀏覽器seo是什么意思 seo是什么職位
  • 網(wǎng)站開發(fā)tt0546軟文營銷的技巧
  • 網(wǎng)站直播間怎么做2023年9月疫情又開始了嗎
  • 南寧網(wǎng)絡(luò)系統(tǒng)開發(fā)win10優(yōu)化大師是官方的嗎
  • 國外網(wǎng)站入口錦繡大地seo官網(wǎng)
  • 網(wǎng)站的內(nèi)容有哪些內(nèi)容嗎褲子seo標(biāo)題優(yōu)化關(guān)鍵詞
  • 如何在工商局網(wǎng)站做身份確認(rèn)關(guān)鍵詞搜索熱度查詢
  • 網(wǎng)站制作屬于什么行業(yè)網(wǎng)站seo具體怎么做
  • 銘萬做的網(wǎng)站國內(nèi)設(shè)計(jì)公司前十名
  • 汽車租賃網(wǎng)站怎么做電商seo優(yōu)化是什么意思
  • 網(wǎng)站服務(wù)器服務(wù)商3d建模培訓(xùn)班一般多少錢
  • 鄭州專業(yè)網(wǎng)站設(shè)計(jì)商丘網(wǎng)絡(luò)推廣外包
  • 互聯(lián)網(wǎng)定制網(wǎng)站網(wǎng)站優(yōu)化排名推廣
  • 做瞹視頻網(wǎng)站網(wǎng)站收錄情況
  • 辦網(wǎng)站需流程網(wǎng)絡(luò)推廣一個(gè)月的收入
  • 網(wǎng)站建設(shè)圖文教程網(wǎng)站如何提交百度收錄
  • 照片做視頻模板下載網(wǎng)站seo外包多少錢
  • 深圳 服裝 網(wǎng)站建設(shè)青島百度網(wǎng)站排名
  • 清溪網(wǎng)站仿做海外推廣專員
  • 網(wǎng)站建設(shè) 模板中心如何創(chuàng)建網(wǎng)站?
  • 怎么做響應(yīng)式網(wǎng)站搜索百度
  • wordpress閉站網(wǎng)站營銷外包哪家專業(yè)