1. 고차함수, Higher Order Function
코틀린의 람다표현식을 공부하다 보면 위 용어 higher-order function, 고차함수 라는 용어를 많이 보게된다.
이거의 뜻은 다음과 같다
1. 함수를 input으로 받는 함수
2. 혹은 함수자체를 리턴해주는 함수
그럼 왜 이놈이 람다표현식 얘기할때 자주나오는가?
주로 저 input값을 줄때나 return으로 함수를 해 줄때 람다표현식을 자주 사용하기 때문이다.
2. 함수 리터럴, function literal
람다표현식을 공부하다 보면 위 얘기도 많이 보게 된다.
먼저 리터럴에 대한 정의부터 보자
위키피디아에 설명은 아래와 같이 되어있다.
In computer science, a literal is a notation for representing a fixed value in source code
리터럴이란 한마디로 그냥 값이다 값
자 우리가 변수를 선언하고 값을 넣는다고 치자
int myVariable = 10;
여기서 myVariable은 변수다.
그리고 오른쪽에 있는 10은 리터럴이다.
그냥 이렇게 생각하면 편하다
우리가 변수선언할때 항상 보는 형태이다.
자료형 변수명 = 리터럴(값);
그럼 함수 리터럴이란?
코틀린 공식문서에서는 다음과 같이 설명되어 있다
Lambda expressions and anonymous functions are function literals. Function literals are functions that are not declared but are passed immediately as an expression.
람다표현식과 익명함수는 함수리터럴이다.
함수리터럴은 객체로 선언이 안되어있지만 표현식을 통해 값으로 전달되는 함수이다.
간단히 예를 들면
val sum: (Int, Int) -> Int = { x: Int, y: Int -> x + y }
위 코드에서 함수 리터럴은 { x: Int, y: Int -> x + y } 요놈 자체가 되겠다.
혹시나 지금 당신이
함수 리터럴 with 리시버
with 리시버 리시버 리시버 리시버 리시버 리시버 리시버 리시버 리시버 리시버 리시버
때문에 고통받고 있다면 아래 글을 참고하자
https://lucky516.tistory.com/134
'Kotlin' 카테고리의 다른 글
[코틀린] 람다표현식과 익명함수 차이 (0) | 2021.12.30 |
---|---|
[코틀린 용어] 클로저 의미, closure (0) | 2021.12.30 |
[코틀린] 리시버가있는 함수 리터럴, Function literals with receiver (1) | 2021.12.29 |
코루틴 배우기 (0) | 2021.12.29 |
[코틀린] 클래스 생성자의 이해 (0) | 2021.07.20 |
댓글