Kotlin/기본 문법
코틀린 강좌 #13 고차함수와 람다함수
자바보이
2020. 12. 19. 12:24
테크과학! DiMo
테크과학! DiMo
개발자가 얘기하는 생활 속 IT기술에 대한 과학! 여러분이 몰랐던, 혹은 정확히 알지 못했던 IT 테크놀러지를 파드립니다! 좋은 영상을 위한 채널 후원, 투네이션을 통해서 해주세요! 후원링크 htt
www.youtube.com
개발 환경: play.kotlinlang.org
고차함수란?
함수를 마치 클래스에서 만들어낸 '인스턴스처럼' 취급하는 방법
함수를 '패러미터'로 넘겨줄 수도 있고 '결괏값으로 반환' 받을 수도 있는 방법
코틀린에서는 모든 함수를 고차함수로 사용 가능하다.
fun main() {
b(::a)
// 고차함수 형태로 넘기려면 함수 이름 앞에 콜론을 두개 붙여준다
// 람다 함수
val c:(String) -> Unit = {str -> println("$str 람다함수")}
// 람다함수 역시 변수에 할당할 때는 타입추론 기능을 이용하여 축약 가능.
// val c = {str:String -> println("$str 람다함수")}
}
fun a (str: String) {
print("$str 함수 a")
}
// (자료형, 자료형, ...)[파라미터] -> 자료형[반환형]
// 값이 없다는 형식인 Unit
fun b (function: (String)->Unit) {
function("b가 호출한")
}
// 람다함수는 일반함수와 달리 그 자체가 고차함수 이다.
람다함수 타입 추론 과정 및 타입 생략 플로우