36
제구조 분해 선언
함수에서 하나 이상의 아이템을 반환하고 싶다고 가정해보자. 예를 들어, 결과를 돌려줄 때 결과와 더불어 결과에 대한 다른 정보를 추가로 돌려주고 싶다면 어떻게 해야 할까?
표준 라이브러리에 있는 Pair 클래스를 쓰면 두 값을 반환할 수 있다.
Destructuring/Pairs.kt
package destructuring
import atomictest.eq
fun compute(input: Int): Pair<Int, String> =
if (input > 5)
Pair(input * 2, "High")
else
Pair(input * 2, "Low")
fun main() {
compute(7) eq Pair(14, "High")
compute(4) eq Pair(8, "Low")
val result = compute(5)
result.first eq 10
result.second eq "Low"
}