[kotlin] High-Order-Function

2021. 6. 18. 13:36모바일/Android_Kotlin

High-Order-Function

  • 함수를 파라미터로 념겨주거나, 함수를 반환하는 함수를 말한다
  • 코틀린은 넘어오는 변수가 1개인 경우 it로 대체 가능하다

파라미터 1개일때,

fun main() {
    print {
        it+4
    }

}
fun print(calculate : (Int)->Int){
    println(calculate(1))
}

//출력
5

파라미터가 2개일 때

fun main() {
    print { a, b ->
        a + b
    }

}

fun print(calculate: (Int, Int) -> Int) {
    println(calculate(1, 3))
}
//출력
4

다른 메소드 참조하기

fun main() {
    printFunction (::sample)
}

fun printFunction(calculate: (Int, Int) -> Int) {
    println(calculate(1, 3))
}
fun sample(a:Int,b:Int) = a+b

//출력
4
  • 이 때 printFunction 파라미터인 caculate함수의 파라미터와 sample함수의 파라미터가 같아야합니다

고차함수 변수에 할당하기

fun main() {
    higherOrder = {
        println("$it")
    }
    higherOrder("print")
}
private lateinit var higherOrder : (String)->Unit

참조