1.apply函数详解

1.1. DSL
/**
* 为什么要传入扩展函数(泛型),而不是一个普通的匿名函数
* T.()->Unit
* 扩展函数里自带了接收者对象的this隐式调用
* 为什么是泛型的扩展函数?
* 因为是由this 隐式调用 this 类型就是泛型类型, 相当于this的扩展函数,就把this的作用域放进去了.
*
* 匿名函数,也可以是扩展函数
*
*
*/
2.函数式编程

3.变换函数
3.1 map函数

fun main() {
val animals:List<String> = listOf("zebra", "giraffe", "elephant", "rat")
val map:List<String> = animals.map { animals -> "A baby $animals" } //相当于stream流 map 然后自动collectList
println(animals)//不会改变原来的集合
println(map)
}

3.2 flapMap

fun main() {
val flatMap =
listOf(listOf(1, 2, 3), listOf(4, 5, 6, 7, 8, 9)).flatMap { it -> it.map { it + 1 } } //flatMap是合并泛型里同类型的集合
println(flatMap)
}
3.3 filter
和Java一样,不需要过多重复


最低0.47元/天 解锁文章
1万+





