TIL #117

loci·2024년 10월 1일
0

TIL

목록 보기
108/111

Kotlin In Action
람다 식 lambda expression 또는 람다는 기본적으로 다른 함수에 넘길 수 있는 작은 코드 조각을 뜻한다.

고차함수 (High-order function)

기본적으로 코틀린의 함수는 일급 함수(first-class)입니다.

간단히 일급 함수라는 것은 함수를 변수나 자료구조로 담아낼 수 있고, 파라미터로 다른 함수로 전달하거나 함수를 리턴 가능한 것입니다.

-> 고차함수란 다른 함수를 인자로 받거나 결과값으로 반환하는 함수로 일급함수의 특징을 이용한다.

람다란?
람다란 쉽게말하면 익명함수로 함수의 이름이 없는 함수
람다를 사용함으로서 표현이 간결해지고 가독성이 좋아진다.

순수 함수란, pure function

동일한 입력 인자에 대해 항상 같은 결과값을 반환하는 함수

일급 객체

다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체

조건

  1. 함수의 인자로 전달가능
  2. 함수의 반환값으로 사용가능
  3. 변수에 담을 수 있음

일급 객체 예제

val oneParam = { n: Int -> n + 2 }
val returnObjectVal = oneParam(1)
val returnObjectFunc = { oneParam(1) }

Kotlin Lambda Expression, 코틀린 람다 표현식 (velog.io)

-> 고차함수가 되려면 일급객체여야한다.

val lambda = {x:Int, y:Int -> x+y}
위 함수는 현재는 반환 타입을 생략하고 파라미터로 Int타입 x,y를 받고 x+y를 반환하는 함수입니다.

val lambda:(Int,Int)->(Int) = {x:Int,y:Int->(x+y)}
위 표현이 반환 타입까지 나타낸 완전한 상태입니다.

val lambda: {x,y -> x + y}
이 표현은 타입 추론 불가로 에러가 발생합니다!

val nestedLambda: ()->()->Unit = { { println("nested") } }
람다식 안에 람다식이 있는 경우

Kotlin 람다 파헤치기 (velog.io)

profile
편리한 개발자

0개의 댓글