Kotlin中內(nèi)置函數(shù)的用法和區(qū)別總結(jié)
前言
在Kotlin中的源碼標(biāo)準(zhǔn)庫(Standard.kt)中提供了一些Kotlin擴(kuò)展的內(nèi)置函數(shù)可以優(yōu)化kotlin的編碼。Standard.kt是Kotlin庫的一部分,它定義了一些基本函數(shù)。 這個源代碼文件雖然一共不到50行代碼,但是這些函數(shù)功能都非常強(qiáng)大。
本文主要記錄kotlin中l(wèi)et、apply、run、also、with等函數(shù)的用法和區(qū)別,下面話不多說了,來一起看看詳細(xì)的介紹吧
0. let
val a = "hello,kotlin".let{
println(it)
3
}
println(a)
hello,kotlin
3
定義:
public inline fun <T, R> T.let(block: (T) -> R): R = block(this)
解釋:調(diào)用 “hello,kotlin”的let函數(shù),it在作用域中替代該對象(hello,kotlin),默認(rèn)返回函數(shù)最后一行
1. apply
val a = "hello,kotlin".apply{
println(this)
}
println(a)
hello,kotlin
hello,kotlin
定義:
public inline fun <T> T.apply(block: T.() -> Unit): T { block(); return this }
解釋:函數(shù)內(nèi)可以用this替代調(diào)用apply函數(shù)的對象,返回值為該對象自己。
2. run
val a = "hello,kotlin".run{
println(this)
2
}
println(a)
hello,kotlin
2
定義:
public inline fun <T, R> T.run(block: T.() -> R): R {
return block()
}
解釋:根據(jù)上述執(zhí)行代碼,run函數(shù)返回閉包內(nèi)最后一行。
3. also
val a = "hello,kotlin".also{
println(it)
}
println(a)
hello,kotlin
hello,kotlin
定義:
public inline fun <T> T.also(block: (T) -> Unit): T {
block(this)
return this
}
解釋:從源碼的定義可以看出,also執(zhí)行block(閉包),并返回this,即調(diào)用also函數(shù)的對象。
4. with
val a = with("string") {
println(this)
3
}
println(a)
string
3
定義:
public inline fun <T, R> with(receiver: T, block: T.() -> R): R = receiver.block()
解釋:并不是擴(kuò)展函數(shù),將指定對象作為函數(shù)的參數(shù),在作用域內(nèi)this替代該對象,返回值為該對象的最后一行。指定的T作為閉包的receiver,使用參數(shù)中閉包的返回結(jié)果。
以上,注意閱讀Kotlin相關(guān)高階函數(shù)的源碼時候,如果函數(shù)中最后一個參數(shù)為閉包,那么最后一個參可以不寫在括號中,而寫在括號后面,如果只有一個參數(shù),括號也可以去掉。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
使用Android Studio檢測內(nèi)存泄露(LeakCanary)
本篇文章主要介紹了用Android Studio檢測內(nèi)存泄露的問題的解決方法,Android Studio在為我們提供了良好的編碼體驗的同時,也提供了許多對App性能分析的工具,下面我們一起來了解一下。2016-12-12
Android轉(zhuǎn)場效果實現(xiàn)示例淺析
這篇文章主要為大家介紹了Android轉(zhuǎn)場效果實現(xiàn)示例淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
android TextView不用ScrollViewe也可以滾動的方法
這篇文章主要介紹了android TextView不用ScrollViewe也可以滾動的方法,很簡單實用的代碼,大家參考使用吧2013-11-11
Android TextView中文本點擊文字跳轉(zhuǎn) (代碼簡單)
用過微博Android手機(jī)端的朋友的都知道微博正文有時有一些高亮顯示的文本,如話題、提到的人等等,當(dāng)點擊這些文本時會跳到另外一個頁面(即另一個activity),下面就要來模仿微博的這個功能2016-01-01
仿墨跡天氣在Android App中實現(xiàn)自定義zip皮膚更換
這篇文章主要介紹了仿墨跡天氣在Android App中實現(xiàn)自定義zip皮膚更換的方法,即讓用戶可以自行通過自制或者下載的zip皮膚包進(jìn)行換膚,需要的朋友可以參考下2016-02-02

