// Int 타입 인자 2개를 받아서 더하는 함수
fun plus(a: Int, b: Int) = a + b
fun main() {
println(plus(1, 3))
}
// 4
<br>
- 만약 함수형 프로그래밍의 접근법을 사용해 `plus`를 수정한다면 `튜플(tuple)`이라는 개념을 사용할 수 있다.
- 수학의 함수 정의를 사용하면 예제와 같다.
``` kotlin
// f((1, 3)) = 1 + 3 = 4
// 이 경우 안쪽의 ()를 생략할 수 있다.
// f(1, 3) = 1 + 3 = 4
함수 정의를 기반으로 코드를 작성하면 튜플이라는 클래스를 만들어 사용한다.
다음과 같이 튜플을 사용하면 튜플 하나의 인자에 여러 원소를 포함할 수 있다.
class Tuple(val a: Int, val b: Int)
fun plus(tuple: Tuple) = tuple.a + tuple.b
fun main() {
println(plus(Tuple(1, 3)))
}
// 4
<br>
- 코틀린은 `페어`를 통해 2개의 요소가 있는 튜플을 기본 제공한다.
* 첫 번째 인자는 `first`, 두 번째 인자는 `second`로 사용할 수 있다.
``` kotlin
fun plus(pair: Pair<Int, Int>) = pair.first + pair.second
페어와 구조분해할당
페어
Int 타입 인자 2개를 받아서 더하는 함수
이다.fun main() { println(plus(1, 3)) } // 4
fun plus(tuple: Tuple) = tuple.a + tuple.b
fun main() { println(plus(Tuple(1, 3))) } // 4
코드가 데이터클래스 기반이므로
copy
,componentN
함수도 기본 제공한다.copy
사용componentN
사용toList
사용트리플
first
, 두 번째 인자는second
, 세 번째 인자는third
를 사용할 수 있다.copy
와componentN
같이 사용구조분해할당
componentN
함수를 사용한다.componentN
이 존재한다는 의미이다.componentN
은 앞선 5개 요소에 대해서만 제공한다.to
는 내부적으로 페어를 사용한다.