gpt4 book ai didi

scala - 在 Scala 中对数字列表的转换求和

转载 作者:行者123 更新时间:2023-12-04 10:01:46 24 4
gpt4 key购买 nike

我经常需要对 Scala 中数字列表的转换求和。一种方法当然是:

list.map(transform(_)).sum

但是,当不需要创建内存时,这会创建内存。另一种方法是折叠列表。
list.foldLeft(0.0) { (total, x) => total + f(x) }

我发现第一个表达式比第二个表达式更容易编写。有没有一种方法可以让我使用第一种方法的简便性和第二种方法的效率?还是我最好编写自己的隐式方法?
list.mapSum(transform(_))

最佳答案

您可以使用 View 使您的转换器方法(映射、过滤器...)变得懒惰。见 here想要查询更多的信息。

因此,例如在您使用名为 transform 的方法的情况下,你会写

list.view.map(transform).sum

(请注意,您可以选择省略 (_) )

关于scala - 在 Scala 中对数字列表的转换求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7729801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com