티스토리 뷰

scala

[Scala] ensuring

sungjine 2019. 10. 19. 12:46
반응형

ensuring은 조건에 맞으면 값을 반환하고 틀리면 java.lang.AssertionError: assertion failed 에러가 발생한다.

 

위의 에러가 발생하는 이유는 ensuring 내부적으로 assert 메서드를 사용하고 있기 때문이다.

 

사용 방법은 ( 조건 식이 참일 때 반환될 값 ) ensuring ( 조건 식 )와 같이 사용한다고 생각하면 된다.

 

ex) 홀수 일 때 에러를 발생시키고 짝수면 해당 숫자를 반환하는 메서드

def test1(num: Int): Int = num ensuring (num % 2 == 0)

또는

def test2(num: Int): Int = num ensuring (_ % 2 == 0)

 

ex) 홀수 일 때 에러를 발생시키고 짝수면 해당 숫자에 1을 더해 반환하는 메서드

def test2(num: Int): Int = (num  + 1) ensuring (num % 2 == 0)

또는

def test2(num: Int): Int = (num  + 1) ensuring (_ % 2 == 0)

 

만약 에러의 메시지를 변경하고 싶다면 ( 조건 식이 참일 때 반환될 값 ) ensuring ( 조건 식, 에러 메시지 ) 와 같이 조건식 뒤에 출력할 메시지를 작성하여 사용하면 된다.

반응형

'scala' 카테고리의 다른 글

[Scala] Callback Hell 및 해결  (0) 2022.03.18
[Scala] 부분 적용 함수  (0) 2018.08.04
[Scala] sealed 제어자  (0) 2018.06.23
[Scala] unapply 메서드  (0) 2018.05.05
[Scala] apply 메서드  (0) 2018.03.24
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday
글 보관함
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31