kotlin中經(jīng)常出現(xiàn)run、with、let、also、apply,開始時(shí)候容易迷糊,有什么用有什么區(qū)別?
一:作用
作用域函數(shù) 用于擴(kuò)展方便開發(fā)者編碼的內(nèi)置函數(shù),能大大提高開發(fā)者的開發(fā)效率。
首頁明確一點(diǎn)他們都是錦上添花,不用一樣可以寫代碼,但是優(yōu)秀的代碼必然需要使用作用域函數(shù)提高效率。
二:定義
Kotlin 標(biāo)準(zhǔn)庫包含幾個(gè)函數(shù),它們的唯一目的是在對(duì)象的上下文中執(zhí)行代碼塊。當(dāng)對(duì)一個(gè)對(duì)象調(diào)用這樣的函數(shù)并提供一個(gè) lambda 表達(dá)式時(shí),它會(huì)形成一個(gè)臨時(shí)作用域。在此作用域中,可以訪問該對(duì)象而無需其名稱。這些函數(shù)稱為作用域函數(shù)。共有以下五種:let、run、with、apply 以及 also。
這些函數(shù)基本上做了同樣的事情:在一個(gè)對(duì)象上執(zhí)行一個(gè)代碼塊。不同的是這個(gè)對(duì)象在塊中如何使用,以及整個(gè)表達(dá)式的結(jié)果是什么。
這里所說的標(biāo)準(zhǔn)函數(shù)主要來自于標(biāo)準(zhǔn)庫中在文件Standard.kt中的所有函數(shù)。

三let例子
簡化代碼,方便統(tǒng)一判斷空處理


五run、with、let、also、apply區(qū)別


https://juejin.im/post/5ae02dd051882567137dde82
http://www.itdecent.cn/p/d9b2d8e83925