我正试图找到一种方法,在不使用"repeat"或Kotlin上的任何循环的情况下获得列表或数组的乘积,但经过一些研究,我找不到任何类似的方法.

在Python中,类似这样的内容是:

>>> reduce(lambda x, y: x*y, [1,2,3,4,5,6])
output: 720

推荐答案

You can use reduce in Kotlin.

从文档中:

Accumulates value starting with the first element and applying operation from left to right to current accumulator value and each element.

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

Kotlin相关问答推荐

如何在Docker中使用Selenium和chromedriver?

Kotlin-elvis算子don';不使用map.get()

Kotlin Poet 的导入不明确

在 Kotlin 中,为什么我们要在闭包中捕获值

Java/Kotlin中类似Rust般的注释编译?

有没有什么方法或算法可以在没有存储的情况下生成唯一的随机数?

可以在没有导入声明的情况下调用 Kotlin 扩展函数吗?

有没有一种简单的方法可以将数组/列表中的每个元素相互相乘 - Kotlin?

Kotlin:查找集合中最常见的元素

将 Android Studio 升级到 3.1.0 后的 Android Support 插件错误

在 Kotlin 中实现 (/inherit/~extend) 注解

在java代码中使用kotlin库

在 gradle android library kotlin 项目中禁用 META-INF/* 生成

如果作为 RxJava Observable 提供,Kotlin 密封类子类需要强制转换为基类

Java中lazy的Kotlin类似功能是什么?

Dagger +Kotlin 不注入

如果kotlin已经有了getter和setter,为什么在数据类中有componentN函数?

Android Studio - java.io.IOException:无法生成 v1 签名

Kotlin中的嵌套let块

Kotlin反射不可用