[kotlin] 코틀린에서의 함수 타입 변환 함수
코틀린은 함수를 일급 시민으로 취급하여 함수를 변수에 할당하고, 함수를 매개변수로 전달하고, 함수를 반환할 수 있습니다. 코틀린에서는 이러한 유연한 함수 처리를 위해 함수 타입 변환 함수를 제공합니다.
함수 타입 변환 함수
코틀린에서는 다음과 같은 함수 타입 변환 함수를 제공합니다.
::
: 함수 참조를 생성하는 연산자invoke
: 함수 타입을 호출 가능한 타입으로 변환하는 함수
함수 참조를 생성하는 연산자 ::
함수 참조를 생성하는 연산자 ::
를 사용하면 이름을 통해 함수에 대한 참조를 생성할 수 있습니다. 예를 들어, 다음과 같이 함수를 선언합니다.
fun sayHello(name: String) {
println("Hello, $name!")
}
이 함수에 대한 참조를 생성하려면 다음과 같이 ::
연산자를 사용합니다.
val helloFunction = ::sayHello
이렇게 생성된 함수 참조 helloFunction
은 sayHello
함수를 가리키며, 이를 이용하여 호출할 수 있습니다.
helloFunction("John") // Hello, John!
함수 타입을 호출 가능한 타입으로 변환하는 함수 invoke
함수 타입을 호출 가능한 타입으로 변환하기 위해 invoke
함수를 사용합니다. 예를 들어, 다음과 같이 함수 타입을 선언합니다.
typealias GreetingFunction = (String) -> Unit
이 함수 타입 GreetingFunction
을 호출 가능한 타입으로 변환하려면 invoke
함수를 호출하면 됩니다.
val greeting: GreetingFunction = ::sayHello
greeting.invoke("Mary") // Hello, Mary!
invoke
함수는 함수 타입의 객체를 호출해주는 역할을 합니다.
결론
코틀린에서의 함수 타입 변환 함수를 사용하면 함수를 일급 시민으로 다룰 수 있습니다. ::
연산자를 사용하여 함수 참조를 생성하고, invoke
함수를 사용하여 함수 타입을 호출 가능한 타입으로 변환할 수 있습니다. 이를 통해 더욱 유연하고 간편하게 함수를 다룰 수 있습니다.
참고 자료
- Kotlin Reference - Function Types
- Kotlin Reference - Callable reference
- Kotlin Reference - Invoke operator