在 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
    
作者: 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