我试图找到一种方法来获得List或Array的产品而不使用"重复"或Kotlin上的任何循环但经过一些研究我找不到类似的东西.
Python中的这样的东西是:
>>> reduce(lambda x, y: x*y, [1,2,3,4,5,6])
output: 720
Run Code Online (Sandbox Code Playgroud)
使用fold功能
val total = listOf(1, 2, 3, 4, 5).fold(1, { total, next -> total * next })
Run Code Online (Sandbox Code Playgroud)
你可以reduce在Kotlin中使用.
来自doc:
从第一个元素开始累积值,并从左到右应用操作到当前累加器值和每个元素.
val list = listOf<Int>(1, 2, 3, 4, 5, 6)
val array = intArrayOf(1, 2, 3, 4, 5, 6)
list.reduce { acc, i -> acc * i } // returns 720
array.reduce { acc, i -> acc * i } // returns 720
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1146 次 |
| 最近记录: |