[Kotlin] invoke 함수는 무엇일까 ?
코틀린 기본 개념을 한 번 쭉 정리하고 싶어서 부스트코스 - 코틀린 프로그래밍 강의를 쭉 듣고 있다. 이제 함수형 프로그래밍과 관련된 내용까지 수강하였는데, 그 과정에서 invoke 함수에 대해
velog.io
[ 여긴 믿을 곳이 아닙니다]
간략한 정리
이름없이 호출한다?
내가 헷갈린 점
invoke가 뭐야...? 그냥 함수면 붙이면 돼??
=> 안됨!!
- 일반 함수와 invoke:
- sum은 일반적인 함수입니다.
- 일반 함수는 직접 invoke를 사용할 수 없습니다.
- invoke 사용 가능한 경우:
- 람다 표현식
- 함수형 인터페이스의 인스턴스
- invoke 연산자가 정의된 클래스의 인스턴스
- 함수 참조를 사용했을 때
private fun sum(a: Int, b: Int): Int = a + b
println(sum(20,30))
//println(sum.invoke(20,30)) // 람다가 아니라서 invoke는 못 쓴다
println(::sum.invoke(20,30)) // 함수 참조를 통해 invoke 사용
람다식이라면? 된다
val sumLambda = { a: Int, b: Int -> a + b }
println(sumLambda.invoke(20, 30))
'개발 중얼거림' 카테고리의 다른 글
Kotlin 에서 SQLite 쓰기... (2) | 2024.09.02 |
---|---|
[Kotlin] 표준 함수 apply와 also의 차이점 (1) | 2024.08.29 |
[Kotlin] Function Reference(::) (0) | 2024.08.29 |
[Kotlin] Sealed class vs Enum (0) | 2024.08.29 |