检查列表中的偶数,并在 Scala 中获取类型不匹配
Checking for evens on a list, and getting a type mismatch in Scala
我正在尝试检查列表的内容以查看某个元素是否为偶数。这是代码:
def listEvenChecker2(aList: List[Int]): Boolean =
{
for (elem <- aList)
{
if (elem % 2 == 0)
{
return true
}
else
{
return false
}
}
}
val myList = List(1,2,3,4,5,6,7)
println(listEvenChecker2(myList))
为什么我会收到此错误:
for-comprehensions 上的 scala 文档显示了一个示例:
EXAMPLE 1
for(x <- c1; y <- c2; z <-c3) {...}
is translated into
c1.foreach(x => c2.foreach(y => c3.foreach(z =>{...})))
如您所见,您拥有的 for 表达式已转换为 aList.foreach
调用,其中 returns Unit
而不是 Boolean
如果要检查是否至少有一个偶数,请使用exists
:
def listEvenChecker2(aList: List[Int]): Boolean =
aList.exists(_%2 == 0)
如果你想检查它们是否都是偶数,使用forall
:
def listEvenChecker2(aList: List[Int]): Boolean =
aList.forall(_%2 == 0)
我正在尝试检查列表的内容以查看某个元素是否为偶数。这是代码:
def listEvenChecker2(aList: List[Int]): Boolean =
{
for (elem <- aList)
{
if (elem % 2 == 0)
{
return true
}
else
{
return false
}
}
}
val myList = List(1,2,3,4,5,6,7)
println(listEvenChecker2(myList))
为什么我会收到此错误:
for-comprehensions 上的 scala 文档显示了一个示例:
EXAMPLE 1
for(x <- c1; y <- c2; z <-c3) {...}
is translated into
c1.foreach(x => c2.foreach(y => c3.foreach(z =>{...})))
如您所见,您拥有的 for 表达式已转换为 aList.foreach
调用,其中 returns Unit
而不是 Boolean
如果要检查是否至少有一个偶数,请使用exists
:
def listEvenChecker2(aList: List[Int]): Boolean =
aList.exists(_%2 == 0)
如果你想检查它们是否都是偶数,使用forall
:
def listEvenChecker2(aList: List[Int]): Boolean =
aList.forall(_%2 == 0)