标准函数with、run和apply
Kotlin的标准函数指的是Standard.kt文件中定义的函数,任何Kotlin代码都可以调用所有的标准函数。
let函数
该函数提供了函数式API的编程接口,并将原始调用对象作为参数传递到Lambda表达式中。
/**
* Calls the specified function [block] with `this` value as its argument and returns its result.
*
* For detailed usage information see the documentation for [scope functions](https://kotlinlang.org/docs/reference/scope-functions.html#let).
*/
@kotlin.internal.InlineOnly
public inline fun <T, R> T.let(block: (T) -> R): R {
contract {
callsInPlace(block, InvocationKind.EXACTLY_ONCE)
}
return block(this)
}
let函数主要配合?.进行使用,可以在外部判断后,如果对象不为空,则将其传入let的lambda表达式之中,处理该对象的多条调用。
fun doStudy() {
study?.let {
it.readBooks()
it.doHomework()
}
}
同时,let函数还可以处理全局变量的判空问题。如果使用if语句则仍然会提示错误,这是因为全局变量随时有可能被其他线程修改,即使做了判空处理,也会有空指针的风险。
with函数
with函数接收两个参数:第一个参数可以是一个任意类型的对象,第二个参数是一个Lambda表达式。with函数会在Lambda表达式中提供第一个参数对象的上下文,并使用Lambda表达式中的最后一行代码作为返回值返回。
val result = with(obj) {
//这里是obj的上下文
"value"//with函数的返回值
}
with函数的左右是可以在连续调用同一个对象的多个方法时让代码变得更加精简,如下所示:
val list = listOf<String>("Apple", "Banana",