美文网首页
Kotlin之let、apply、with、run的使用及对比

Kotlin之let、apply、with、run的使用及对比

作者: 半截铅笔 | 来源:发表于2017-06-21 10:52 被阅读84次

1)let--默认当前这个对象作为闭包的it参数,返回值是函数里面最后一行,或者指定return

--eg.--输出字为 str 和 Log的返回值

str.let {           

Log.i("----", "$it")      

}.let {           

Log.i("----", "$it")       

}

2)apply

--调用某对象的apply函数,在函数范围内,可以任意调用该对象的任意方法,并返回该对象

--eg.

--返回为apply

tv?.apply {           

text = "apply"      

}.let {           

Log.i("----", "${it?.text}")

}

3)with

--返回是最后一行,可以直接调用对象的方法 类似于 apply和let的结合

--eg.

--返回为true with(ArrayList()) {

add("with")

add("with")

add(with)

}.let {

Log.i("----", "let-->$it")

}

4)run

--run函数是使用最后一行的返回

--eg.

--返回为 strstr

var str: String = "str"

str.run {

str + str

}.let {

Log.i("----", "run-->$it")

}

说明:

apply和with 的异同

1.apply和with 都可以直接调用该对象的任意方法

2.apply 和with 都支持 extension

3..apply返回该对象,with 返回最后一行的返回值

run和with的异同

1.with 不支持extension

2.run 支持 extension

相关文章

网友评论

      本文标题:Kotlin之let、apply、with、run的使用及对比

      本文链接:https://www.haomeiwen.com/subject/ocmzqxtx.html