在 Scala 中使用 If-Else 返回布林值

Suraj P 2022年6月15日
在 Scala 中使用 If-Else 返回布林值

本文將教我們在 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

所以我們可以用不同的方式解決這個問題。

  1. 使用 contains 方法在我們的集合中找到一個元素。如果元素存在,則返回 true;否則返回

    這是編寫上述程式碼的一種更優雅的方式。

    示例程式碼:

    val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
    println(digitsSet.contains((10,20,30)))
    

    輸出:

    true
    
  2. truefalse 之前新增 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
    
  3. 在 Scala 中使用 exists 方法。

    val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
    
    println(digitsSet.exists( _ == (1,20,50) ))
    

    輸出:

    false
    
Author: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub