[Android] 고차 함수와 람다란?

MinGyun_06·2023년 3월 31일

android

목록 보기
2/7
post-thumbnail

고차 함수

고차 함수는 다른 함수를 인자로 받거나 함수를 반환하는 함수입니다. 코틀린에서는 이 고차 함수와 람다를 이용하여 코드를 짜는 일이 다분합니다. 가장 많이 쓰이는 예로 setOnClickListener() 같은 콜백 함수가 고차함수에 속합니다.

람다

간단하게 말하면 익명함수로 함수의 이름이 없는 함수를 말합니다. 보통 한번 재사용되지 않는 함수를 만들때 사용됩니다. 이제 람다를 이용한 고차 함수의 종류에 대해 알아봅시다.

람다를 활용해서 고차함수 만들어보기

fun test(a: Int, b: Int, p= (Int, Int) -> Int{
	println("$a, "$b -> ${p(a, b)})
}

위 코드에서 test는 고차함수라고 할 수 있습니다.
a, b와 두개의 Int형 인자를 받아 Int값을 반환하는 함수를 인자로 받아 이를 출력하는 test라는 고차함수를 만들었습니다. 이렇게 만든 고차 함수는 메인에서 실행할 수 있습니다.

고차함수의 인자가 하나인 경우

fun test2(a: Int, p: (Int) -> Int{
	println("test $a -> ${p(a)}")
}

고차함수의 인자가 없는 경우

fun test3(p : () -> Unit) {
	println("Text = ")
    p()
}

위 코드와 같이 인자가 없을 경우 Unit을 사용합니다.

글을 마치며

본 글은 필자가 공부 후 정리를 하기 위해 쓴 글이므로 설명이 미숙할수도 있습니다. 조금 더 공부해서 나중에 발전된 모습으로 한번 더 써보도록 하겠습니다. (:

0개의 댓글