上文讲了kotlin标准函数中的作用域函数(Scope Functions),本文将对剩下几个标准函数进行介绍
作用域函数(Scope Functions):https://www.jianshu.com/p/d8bb272de78c
TODO() 函数 & TODO(reason: String) 函数
该方法没什么可说的,就是抛出个异常,提示有操作没有完成。
takeIf函数
描述:论格式有点像作用域函数中的also函数,同样是开辟一块临时作用域执行一段代码,同样是通过参数"it"的形式引用被操作对象(lambda语法糖:lambda表达式只有一个参数时,可以不显示声明参数,该参数名默认为“it”),同样也是将被操作的对象返回。但不同的是lambda表达式的返回值为boolean类型,takeIf的返回值只有在lambda返回true的时候才会返回被操作对象,否则返回null。
格式:
val letResult = xiaoxin?.takeIf {
it.name = "xiao xin"
it.age = 18
it.age <= 20
}?.run {
println(name)
println(age)
}
takeUnless函数
描述:从名字上就可以看出来,它的使用和takeIf是刚好相反的,takeIf是符合条件就返回对象(否则返回null),takeUnless则是符合条件返回null,不符合条件返回对象
格式:
val letResult = xiaoxin?.takeUnless {
it.name = "xiao xin"
it.age = 18
it.age <= 20
}?.run {
println(name)
println(age)
}
repeat函数
描述:也是见名知意,它是用来做重复操作的。它接收两个参数,第一个是循环的次数,第二个是lambda表达式,概lambda函数便是被循环执行的操作。lambda接收一个Int类型参数(默认名为it),表示循环的下标(从0开始),返回值为Unit(没有返回值,可以理解为java中的void)。
格式:
var i = 0
repeat(10) {
//需要循环执行的代码块
i++
println("第${it}次循环,i:$i")
}
网友评论