tonykang22 / study

0 stars 0 forks source link

[Kotlin & Spring] 08. 페어와 구조분해할당 #117

Open tonykang22 opened 1 year ago

tonykang22 commented 1 year ago

페어와 구조분해할당

페어

fun main() { println(plus(1, 3)) } // 4


<br>

- 만약 함수형 프로그래밍의 접근법을 사용해 `plus`를 수정한다면 `튜플(tuple)`이라는 개념을 사용할 수 있다.
- 수학의 함수 정의를 사용하면 예제와 같다.
``` kotlin
// f((1, 3)) = 1 + 3 = 4
// 이 경우 안쪽의 ()를 생략할 수 있다.
// f(1, 3) = 1 + 3 = 4


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




코드가 데이터클래스 기반이므로 copy, componentN 함수도 기본 제공한다.




트리플



구조분해할당

val food = Food("갈비찜", "라멘")
val (korean, japenese) = food  // korean, japenese 라는 변수를 선언하며, 동시에 food의 여러 컴포넌트로 초기화 

println(korean)
// 갈비찜

println(japenese)
// 라멘