kotlin练习 - 作用域函数学习
1 |
|
let
-
定义:
fun <T, R> T.let(block: (T) -> R): R
-
功能:
调用对象(T)的let函数,则该对象为函数的参数。在函数内可以通过 it指代该对象。返回值为函数的最后一行或指定return表达式。
-
实例:
1 | fun main(args: Array<String>) { |
with
-
定义:
fun <T, R> with(receiver: T, block: T.() -> R): R
-
功能:
将对象作为函数的参数,在函数内可以通过this指代该对象。返回值为函数的最后一行或return表达式。
-
实例:
1 | fun main(args: Array<String>) { |
apply
-
定义:
fun T.apply(block: T.() -> Unit): T
-
功能:
调用对象的apply函数,在函数范围内,可以任意调用该对象的任意方法,并返回该对象。
-
实例:
1 | fun main(args: Array<String>) { |
run
-
定义:
- fun run(block: () -> R): R
- fun <T, R> T.run(block: T.() -> R): R
-
功能:
调用run函数返回值为函数体最后一行,或return表达式。
-
实例:
1 | fun main(args: Array<String>) { |
repeat
-
定义:
fun repeat(times: Int, action: (Int) -> Unit)
-
功能:
重复执行action函数times次,times从0开始
-
实例:
1 | fun main(args: Array<String>) { |
also
-
定义:
fun T.also(block: (T) -> Unit): T
-
功能:
调用对象的also函数,在函数块内可以通过 it指代该对象,返回值为该对象本身。(注意其和let函数的区别,let返回的是最后一行,also返回的是对象本身)
-
实例:
1 | fun main(args: Array<String>) { |
takeIf
-
定义:
fun T.takeIf(predicate: (T) -> Boolean): T?
-
功能:
传递一个函数参数,如果函数结果为true,返回T对象,否则返回null。
-
实例:
1 | fun main(args: Array<String>) { |
takeUnless
-
定义:
fun T.takeUnless(predicate: (T) -> Boolean): T?
-
功能:
与takeIf相反,参数函数返回false时返回T对象,否则返回null
-
实例:
1 | fun main(args: Array<String>) { |