스칼라에서 If-Else를 사용하여 부울 반환

Suraj P 2022년6월21일
스칼라에서 If-Else를 사용하여 부울 반환

이 기사는 스칼라에서 if-else로 작업할 때 부울 값을 반환하는 방법을 알려줍니다.

스칼라에서 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 대신 Boolean을 반환해야 한다는 것입니다.

따라서 우리는 이 문제를 다양한 방법으로 해결할 수 있습니다.

  1. contains 메서드를 사용하여 집합에서 요소를 찾습니다. 요소가 있으면 true를 반환하고, 없으면 false를 반환합니다.

    이것은 위의 코드를 작성하는 보다 우아한 방법입니다.

    예제 코드:

    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