Kotlin中的fold和reduce有什么区别?

Kotlin中的fold和reduce有什么区别?

kotlinfoldreducelist
1
253
小课
小课2022-06-12 16:44
1 个回答
fold

需要传入一个初始值,当集合为空时直接返回初始值,当集合不为空时,第一轮执行的两个参数分别是初始值和集合中的第一个元素,比如下面这段代码。

listOf(1, 2, 3).fold(0) { sum, element -> sum + element }

第一轮时sum和element分别是0和1。

reduce

没有初始值,如果集合为空会抛出异常,当集合不为空时,第一轮执行的两个参数分别是集合中的第一个和第二个元素,比如下面这段代码。

listOf(1, 2, 3).reduce { sum, element -> sum + element }

第一轮时sum和element分别是1和2。

1
小课
小课2022-06-12 16:53
你的回答

内容