Kotlin语法手册(二)
在使用kotlin时,由于掌握的不够牢靠,好多时候也还是Java编程的习惯,浪费了kotlin提供的语言特性,方便性,间接性,在阅读一些Android开源库的时候,由于好多都是kotlin语法编写的,看的比较费劲,还得去查阅kotlin的语法,比较不方便,故把kotlin的语法记录下来,方便查阅温故,巩固自己的基础知识。
函数操作符
总数操作符
any
如果至少有一个元素符合给出的判断条件,则返回 true
val list = listOf(1, 3, 5, 7, 9)
println(list.any { it > 13 }) //false
println(list.any { it > 7 }) //true
all
如果全部的元素符合给出的判断条件,则返回 true
val list = listOf(1, 3, 5, 7, 9)
println(list.all { it > 13 }) //false
println(list.all { it > 0 }) //true
count
返回符合给出判断条件的元素总数
val list = listOf(1, 3, 5, 7, 9)
println(list.count { it > 7 }) //1
println(list.count { it > 2 }) //4
fold
在一个初始值的基础上从第一项到最后一项通过一个函数累计所有的元素
fun main() {
val list = listOf(1, 3, 5, 7, 9)
println(list.fold(2) { total, next->
println("$next , $total")
next + total
})
}
1 , 2//集合的第一个元素1,和初始化基础值2
3 , 3//集合的第二个元素3,上次累加的1+2=3
5 , 6//集合的第三个元素5,上次累加的3+3=6
7 , 11//集合的第四个元素7,上次累加的5+6=11
9 , 18//集合的第五个元素9,上次累加的7+11=18
27//外层println(list...)输入返回值9+18=27
foldRight
与 fold 一样,但顺序是从最后一项到第一项
val list = listOf(1, 3, 5, 7, 9)
println(list.foldRight(2) { next, total->
println("$next , $total")
next + total
})
9 , 2
7 , 11
5 , 18
3 , 23
1 , 26
27
forEach
val list = listOf(1, 3, 5, 7, 9)
list.forEach { print(it + 1) } //246810
forEachIndexed
类似于 forEach ,同时可以得到元素的索引
val list = listOf(1, 3, 5, 7, 9)
list.forEachIndexed { index, value -> println("$index value is $value") }
//输入结果
0 value is 1
1 value is 3
2 value is 5
3 value is 7
4 value is 9
max
返回最大的一项,如果没有则返回null
val list = listOf(1, 3, 5, 7, 9)
println(list.max()) //9
maxBy
根据给定的函数返回最大的一项,如果没有则返回 null
val list = listOf(1, 3, 5, 7, 9)
println(list.maxBy { -it }) //1
min
返回最小的一项,如果没有则返回null
val list