首页 > 解决方案 > 最多接受多个函数调用

问题描述

假设我有这个功能fun someValue() : Double。我想运行这个函数n次并取所有结果中的最大值。

我知道我可以将它全部保存在一个列表中并使用max(),但我不想浪费那个空间(因为它实际上返回了一个更大的对象)。

是否存在为此的库函数?

也许像repeat(n){someValue()}.max()

标签: kotlincollectionsmax

解决方案


这里有几种不分配中间数组或所有值列表的方法。

var x = someValue()
repeat(n - 1) {
    x = max(x, someValue())
}

val y = (1 until n).fold(someValue()) { acc, _ -> max(acc, someValue()) }

推荐阅读