정의
A lambda function is a simple, short, throwaway function which is designed to be created inline in code. They're also known as lambda expressions, anonymous functions, lambda abstractions, lambda form, or function literals.
람다함수란
-함수형 프로그래밍에서 사용되는 개념으로 익명 함수라고도 부른다.
-자바8부터 지원하고 불필요한 코드를 줄이고 가독성을 향상 시키는 것을 목적으로 두고 있다.
익명함수를 람다식으로 바꾸기
근데 위와 같이 람다식으로 바꾸기 위해서는 몇가지 충족요건이 필요하다. 안맞으면 람다식으로 표현할 수 없다.
Runnable 인터페이스 안의 내용인데 아래 요건을 충족해야지 람다식으로 표현이 가능하다.
-
@FunctionalInterface 어노테이션이 붙어있다.
-
추상클래스가 반드시 하나만 있어야 한다.
위와같은 조건이 만족하는 Runnable 인터페이스를 함수형 인터페이스라고 부른다.
코틀린에서는 함수형 인터페이스나 함수형 추상클래스가 있어야 한다. Kotlin에서는 인터페이스를 함수형으로 표시하기 위해서 @FunctionalInterface를 안사용한다.
코틀린에서는 모든 인터페이스가 함수형이라고 간주하고 람다식으로 사용할 수 있다.
추가적으로 더 실험을 해봤는데 아래와 같은 경우도 람다식을 사용한 케이스라고 한다.
앞서 설명한 내용을 바탕으로 생각을 해보면 위의 코드에서는 함수형 인터페이스를 쓴적이 없으니 람다라고 말 할 수 없는데 람다가 맞다.
람다 함수를 사용하려면 해당 코드 블록을 함수나 변수에 할당하거나 다른 함수에 전달할 수 있어야 한다고 한다.
'코틀린' 카테고리의 다른 글
Debug coroutines using IntelliJ IDEA – tutorial (IntlliJ IDEA를 활용해서 코루틴을 디버깅 하는 방법) (0) | 2023.10.26 |
---|---|
Coroutine (0) | 2023.10.24 |
inline 함수와 reified type (0) | 2023.10.20 |
Object expressions and declarations (객체 표현식과 선언식) (2) | 2023.10.18 |
의존성 주입(Dependency Injection) 코틀린 (0) | 2023.10.15 |