본문 바로가기

코틀린

lamda 람다란?

정의
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 인터페이스 안의 내용인데 아래 요건을 충족해야지 람다식으로 표현이 가능하다.
  1. @FunctionalInterface 어노테이션이 붙어있다.
  2. 추상클래스가 반드시 하나만 있어야 한다.
위와같은 조건이 만족하는 Runnable 인터페이스를 함수형 인터페이스라고 부른다.
 
코틀린에서는 함수형 인터페이스나 함수형 추상클래스가 있어야 한다. Kotlin에서는 인터페이스를 함수형으로 표시하기 위해서 @FunctionalInterface를 안사용한다.
코틀린에서는 모든 인터페이스가 함수형이라고 간주하고 람다식으로 사용할 수 있다.
 
 
추가적으로 더 실험을 해봤는데 아래와 같은 경우도 람다식을 사용한 케이스라고 한다.
 
앞서 설명한 내용을 바탕으로 생각을 해보면 위의 코드에서는 함수형 인터페이스를 쓴적이 없으니 람다라고 말 할 수 없는데 람다가 맞다.
 
람다 함수를 사용하려면 해당 코드 블록을 함수나 변수에 할당하거나 다른 함수에 전달할 수 있어야 한다고 한다.