모바일/Android_Kotlin
[kotlin] High-Order-Function
필경이야
2021. 6. 18. 13:36
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
참조