在 Scala 中使用 If-Else 返回布尔值
Suraj P
2022年6月15日
本文将教我们在 Scala 中使用 if-else
时如何返回布尔值。
在 Scala 中使用 if-else
返回布尔值
让我们看一个场景来更好地理解它。
def check(): Boolean = {
for ((digit1,digit2,digit3) <- digitsSet){
if ((1,5,6) == (digit1,digit2,digit3))
true
else
false
}
}
val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
在上面的代码中,我们试图找出我们的集合是否包含这三个数字,所以我们期望输出是 true
还是 false
,但是当执行上面的代码时,我们得到以下错误。
type mismatch;
found : Unit
required: Boolean
for ((digit1,digit2,digit3) <- digitsSet){
问题是函数应该返回布尔值而不是 Unit
。
所以我们可以用不同的方式解决这个问题。
-
使用
contains
方法在我们的集合中找到一个元素。如果元素存在,则返回true
;否则返回假
。这是编写上述代码的一种更优雅的方式。
示例代码:
val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) println(digitsSet.contains((10,20,30)))
输出:
true
-
在
true
和false
之前添加return
语句。这是最好的方法,因为它用途广泛,几乎可以在任何情况下使用。val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) def check(): Boolean = { val store = for ((digit1,digit2,digit3) <- digitsSet) { if ((10,20,30) == (digit1,digit2,digit3)) return true } false } println(check())
输出:
true
-
在 Scala 中使用
exists
方法。val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) println(digitsSet.exists( _ == (1,20,50) ))
输出:
false