스칼라에서 If-Else를 사용하여 부울 반환
Suraj P
2022년6월21일
이 기사는 스칼라에서 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을 반환해야 한다는 것입니다.
따라서 우리는 이 문제를 다양한 방법으로 해결할 수 있습니다.
-
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
-
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