[Kotlin] 범위 지정 함수 - coerceIn, coerceAtMost, coerceAtLeast
🔷 범위 지정 함수란?
Coerce는 '강제로 무언가를 하게 하다'라는 뜻이 있다.
내포하는 단어의 뜻처럼 어떠한 범위를 강제로 지정하여 결과값을 도출하는 함수이다.
범위 지정 함수는 "어떠한 영역을 지정하고 내부에서 작동하는 함수"이다.
대표적으로 [ let, with, run, apply, also] 함수가 있다.
* 추가 포스팅 예정
🔷 coerceIn
🔹구조
객체가 해당 범위에 있을 경우 해당 값을, 존재하지 않을 경우 경계값(범위의 최소값 혹은 최대값)을 반환
(객체).corerceIn(범위)
- 객체로 확인할 값을 지정한다.
- 메소드를 적용한다. : coerceIn()
- 메소드의 인자값으로 범위를 지정한다. : coerceIn(a..b) / coerceIn(a, b) *a는 범위 내 최소값, b는 범위 내 최대값
🔹코드
val range = 3..7
// 범위 내 존재, 해당 값 리턴
4.coerceIn(range) // 4
4.coreceIn(3,6) //4
// 범위 외 존재, 경계값 리턴
1.coerceIn(range) // 3
9.coerceIn(range) //8
🔷 coerceAtMost
🔹구조
객체가 인자값보다 작을 경우 객체를, 아닐 경우 최소 객체를 반환
(객체).coerceAtMost(인자값)
- 객체로 확인할 값을 지정한다.
- 메소드를 적용한다. : coerceAtMost()
- 메소드의 인자값으로 비교할 값을 지정한다.
🔹코드
val value = 5
// 객체가 작을 경우
value.coerceAtMost(2) // 2
// 인자가 작을 경우
value.coerceAtMost(8) // 5
🔷 coerceAtLeast
🔹구조
객체가 인자값보다 클 경우 객체를, 아닐 경우 최대 객체를 반환
(객체).corerceAtLeast(인자값)
- 객체로 확인할 값을 지정한다.
- 메소드를 적용한다. : coerceAtLeast()
- 메소드의 인자값으로 비교할 값을 지정한다.
🔹코드
val value = 5
// 객체가 클 경우
value.coerceAtLeast(8) // 8
// 인자가 클 경우
value.coerceAtLeast(2) // 5
🔷 coerceAtMost , Min / coerceAtLeast , Max
최대값 갱신을 위해서 보통 최대값 = Math.Max( 최댓값, 숫자2)를 사용한다.
코틀린에서는 Int 의 확장함수인 coreceAtLeast()를 사용하여 최댓값.corceAtLeast(숫자) 로 가능하다.