Kotlin學習筆記

lateinit 和 by lazy的區(qū)別:

是kotlin里面的延遲初始化實現(xiàn),
1.lateinit 只用于變量 var,而 lazy 只用于常量 val
2.lateinit可以在任何位置初始化并且可以初始化多次。而lazy在第一次被調(diào)用時就被初始化,想要被改變只能重新定義
3.lazy 應用于單例模式(if-null-then-init-else-return),當且僅當變量被第一次調(diào)用的時候,想要被改變只能重新定義,委托方法才會執(zhí)行(有點類似懶加載);lateinit可以在任何位置初始化并且可以初始化多次。
4.lateinit 則用于只能生命周期流程中進行獲取或者初始化的變量,比如 Android 的 onCreate()

變量?和!!

? :定義變量時,可在類型后面加一個問號?,表示該變量是Nullable,不加表示該變量不可為null(不加?編譯的時候默認先執(zhí)行非空判斷)。對于可以為null的變量,在使用該變量的時候,必須用變量名+?(如上面的s?)的形式進行調(diào)用,表示如果該變量為null,則不執(zhí)行該變量調(diào)用的方法
! : 表示當前對象不為空的情況下執(zhí)行

val與var

var:定義可變變量
val :定位常量,java里面的final

open關(guān)鍵字

open 注解與java 中的 final相反:它允許別的類繼承這個類。默認情形下,kotlin 中所有的類都是 final ,open用來表示他可以被集成

==和===區(qū)別

1.Referential/引用相等(兩個引用指向同一對象): ===(否定形式!==)是對象引用(地址),即判斷是否同一個對象!
2.Structural/結(jié)構(gòu)相等(用equals()檢查): ==(否定形式!=)是通過equals()函數(shù)進行比較!

let,apply,with,run函數(shù)區(qū)別

http://m.itdecent.cn/p/28ce69d58fea

Kotlin集合

https://blog.csdn.net/xsg2357/article/details/80417980
http://m.itdecent.cn/p/6d95db6e9f87

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 人生苦多,快來 Kotlin ,快速學習Kotlin! 什么是Kotlin? Kotlin 是種靜態(tài)類型編程...
    任半生囂狂閱讀 26,761評論 9 118
  • 本文只是自學kotlin所做筆記,并非全部原創(chuàng) 1、基本語法 var是變量,val是常量kotlin中沒有new關(guān)...
    HarveyLegend閱讀 1,207評論 0 0
  • 系列文章全部為本人的學習筆記,若有任何不妥之處,隨時歡迎拍磚指正。如果你覺得我的文章對你有用,歡迎關(guān)注我,我們一起...
    我愛吃栗子啊閱讀 14,498評論 3 8
  • Kotlin 學習筆記(一) Kotlin初識 這是一個Kotlin系列的教程,目的是為了使自己記憶和理解的更加深...
    真的有照片閱讀 1,284評論 1 6
  • 本文介紹了Kotlin入門應該知道一些基本語法概念。包括變量、常量、函數(shù)、空安全、類定義、類繼承、數(shù)據(jù)類、接口定義...
    于衛(wèi)國閱讀 6,698評論 6 10

友情鏈接更多精彩內(nèi)容