-
[Kotlin 코틀린] 고차함수와 람다(High Order Function & Lambda)Kotlin 2021. 1. 9. 14:29728x90
'디모의 Kotlin 강좌' 유튜브 강의 및 추가 학습하여 정리한 내용입니다.
고차함수 (High Order Function)
매개 변수 또는 반환 값으로 또 다른 함수가 사용되는 함수
fun main() { b(::a) // :: 일반함수를 고차함수로 변경해주는 연산자 } fun a (str: String) { println("$str 함수 a") } fun b (function: (String) -> Unit) { function("b가 호출한") } // 결과 : b가 호출한 함수 a
※ 반환 값이 없다면 이전에 배운 void와 같은 Kotlin 에서의 Unit 예약어를 사용하면 코틀린만의 반환 값이 없다는 특수한 객체가 전달
람다 (Lambda)
이름이 없는 익명 함수 (Anonymous Function). 함수형 프로그래밍에서 고차함수의 매개변수나 반환값으로 사용.
fun main() { val a: (String) -> Unit = {str -> println("$str 람다함수 a")} b(a) } fun b (function: (String) -> Unit) { function("b가 호출한") } // 결과 : b가 호출한 람다함수 a
1) 여러 줄인 경우, 마지막 구문의 결과 값이 반환된다
val calculate: (Int, Int) -> Int = {a, b -> println(a) println(b) a + b }
2) 파라미터가 또는 반환 값 없는 경우, 실행한 구문들만 나열하면 된다
val a: () -> Unit = {println("파라미터와 반환값 없음")} val a = { println("파라미터와 반환값 없음") }
3) 파라미터 하나인 경우, 파라미터 이름을 생략하고 it 키워드를 사용할 수 있다.
val c: (String) -> Unit = { println("$it 람다함수") }
참고 사이트
www.youtube.com/watch?v=mvfU-7tdLWs&list=PLQdnHjXZyYadiw5aV3p6DwUdXV2bZuhlN&index=14
[Kotlin 코틀린 기초] 시리즈 게시글 더보기
2021/01/06 - [Kotlin] - [Kotlin 코틀린 기초] 변수 및 자료형 (Nullable & Non-Nul
2021/01/06 - [Kotlin] - [Kotlin 코틀린 기초] 타입추론(Type inference)과 함수
2021/01/08 - [Kotlin] - [Kotlin 코틀린 기초] 추상클래스와 인터페이스 (Abstract Class & Interface)
728x90'Kotlin' 카테고리의 다른 글
[Kotlin 코틀린] Scope function - apply, with, let, also ,run (0) 2021.08.28 [Kotlin 코틀린] 추상클래스와 인터페이스 (Abstract Class & Interface) (0) 2021.01.08 [Kotlin 코틀린] 타입추론(Type inference)과 함수 (0) 2021.01.06 [Kotlin 코틀린 기초] 변수 및 자료형 (Nullable & Non-Nul (0) 2021.01.06