Apply
- 用this代表當前引用對象;
- 調(diào)用其方法時,this可省略;
- 一定有返回值,且返回值為當前對象
- 對象可判空
val data = DataCenter()
/**
* 特性
1. 用this代表當前引用對象;
2. 調(diào)用其方法時,this可省略;
3. 一定有返回值,且返回值為當前對象;
4. 對象可判空;
*/
data?.apply {
this.setUid("1111")
setUid("1111")
}.setUid("1111")
Let
- 用it代表當前引用對象;
- 調(diào)用其方法時,it不可省略;
- 函數(shù)最后一行為返回值,可有可無;
- 對象可判空;
val data = DataCenter()
/**
特性
1. 用it代表當前引用對象;
2. 調(diào)用其方法時,it不可省略;
3. 函數(shù)最后一行為返回值,可有可無;
4. 對象可判空;
*/
val value = data?.let {
it.setUid("1111")
// 不寫則無返回結(jié)果
"返回結(jié)果"
}
Run
- 用this代表當前引用對象;
- 調(diào)用其方法時,this可省略;
- 函數(shù)最后一行為返回值,可有可無;
- 對象可判空;
val data = DataCenter()
/**
特性
1. 用it代表當前引用對象;
2. 調(diào)用其方法時,it不可省略;
3. 函數(shù)最后一行為返回值,可有可無;
4. 對象可判空;
*/
val value = data?.run {
this.setUid("1111")
setUid("1111")
// 不寫則無返回結(jié)果
"返回結(jié)果"
}
With
- 用this代表當前引用對象;
- 調(diào)用其方法時,this可省略;
- 函數(shù)最后一行為返回值,可有可無;
- 對象不可判空;
val data = DataCenter()
/**
特性
1. 用it代表當前引用對象;
2. 調(diào)用其方法時,it不可省略;
3. 函數(shù)最后一行為返回值,可有可無;
4. 對象不可判空;
*/
val value = with(data) {
this.setUid("1111")
setUid("1111")
// 不寫則無返回結(jié)果
"返回結(jié)果"
}
Also
- 用it代表當前引用對象;
- 調(diào)用其方法時,it不可省略;
- 一定有返回值,且返回值為當前對象;
- 對象可判空;
val data = DataCenter()
/**
特性
1. 用it代表當前引用對象;
2. 調(diào)用其方法時,it不可省略;
3. 一定有返回值,且返回值為當前對象;
4. 對象可判空;
*/
data?.also {
it.setUid("1111")
}.setUid("1111")
總結(jié)
|
apply |
let |
run |
with |
also |
| 函數(shù)體對象 |
this |
it |
this |
this |
it |
| 對象是否可省 |
可 |
不可 |
可 |
可 |
不可 |
| 返回值 |
當前對象 |
任何對象 |
任何對象 |
任何對象 |
當前對象 |
| 可否判空 |
可以 |
可以 |
可以 |
不可以 |
可以 |
?著作權(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ù)。