코틀린에서는 파라미터 타입으로 함수를 받아낼수 있고 이것을 고차함수라고 부른다.
인터페이스로 하는것보다 간결하고 가독성도 좋다.
private inline fun highOrderFunc(myFun: () -> Any?){
val returns = myFun()
println(returns)
}
fun test(){
highOrderFunc { null }
highOrderFunc { 100 }
highOrderFunc { "String" }
}
Arguments의 myfunc에 앞쪽의 ()는 argument를 가르키고 -> 뒤에 속성은 return을 가르킨다.
null
100
String
인라인을 선언하는 이유는 호출하는 위치에서 콜스택 행위가 반복되지 않도록 컴파일 시점에 inner 처리를 해주기 때문이다. 고차함수 일때 유용하다.