在 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