gpt4 book ai didi

scala - 如何创建一个返回数组中偶数个数的 Scala 函数?

转载 作者:行者123 更新时间:2023-12-01 22:30:24 25 4
gpt4 key购买 nike

我正在尝试创建一个函数来返回数组中偶数的个数。到目前为止,我有以下代码,但它不起作用:

(a: Array[Int]): Int = {
var howManyEven = 0
for(i <-0 to a.length) {
if(a(i)%2==0){
howManyEven+= 1
}
howManyEven
}

此外,出于某种原因,我对如何返回数组中奇数的数量感到困惑。我的方法关闭了吗?我想我只是对使用什么方法来生成我想要的输出感到困惑。

最佳答案

您有一个差一错误(忽略其他拼写错误和丢失的信息),因为您试图从 0a.length。但是如果长度是 10,那么你将从 0 到 10,也就是 11 个索引。它应该是 a.length - 1

通过使用函数式方法,您可以避免不得不对差一错误进行推理。使用集合库中的标准方法可以在一行中完成同样的事情。

def howManyEven(a: Array[Int]): Int = a.count(_ % 2 == 0)

scala> howManyEven(Array(1, 2, 3, 4, 6, 8, 9, 10, 11))
res1: Int = 5

count 是集合库中的一种方法,用于对集合中满足 Boolean 属性的元素进行计数。在这种情况下,检查元素是否为偶数。

我建议阅读 List 上可用的方法, 例如。 Scala 集合库非常丰富,几乎可以满足您的所有需求。这只是找到合适的一个(或组合)的问题。如您所见,Java 设置 for 循环和使用可变变量的方式往往容易出错,而在 Scala 中最好避免这种情况。

关于scala - 如何创建一个返回数组中偶数个数的 Scala 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29812337/

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