Kotlin中的列表或数组的产品
我试图find一种方法来获得列表或数组的产品,而不使用“重复”或Kotlin上的任何循环,但经过一些研究,我找不到任何类似的东西。
在Python中这样的东西是:
>>> reduce(lambda x, y: x*y, [1,2,3,4,5,6]) output: 720
你可以在Kotlin中使用reduce
。
从文档:
从第一个元素开始累加值,并将操作从左到右应用到当前的累加器值和每个元素。
val list = listOf(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
使用fold
function
val total = listOf(1, 2, 3, 4, 5).fold(1, { total, next -> total * next })
希望这可以帮助:
fun main(args: Array){ val array = intArrayOf(1, 2, 3, 4, 5, 6) val product = array.fold(1){acc, i -> acc * i} println("The result is: $product") }
这将输出数组的产品。