본문 바로가기
Android/안드로이드 스터디(Kotlin)

Kotlin] 13. invoke?

by 김마리님 2020. 12. 7.

자바랑 다르게 코틀린은 정말 신기한 함수가 있는데, invoke라는 함수이다.

앞서 계속 말했지만 코틀린은 간단한 코드를 지향하는 함수이다.

 

예시를 본다.

fun main(args: Array<String>): Unit {
    val person = Person("Kotlin")
    person()
}

class Person(var name: String) {
    operator fun invoke() {
        println("name : $name")
    }
}


 

결과 : 

 

name : Kotlin

 

 

뭔가 이상한 점이 보이지 않나?

person이라는 객체를 선언해놓고, 굳이 객체 내의 함수 이름인 invoke를 호출하지 않아도 invoke 내부의 함수가 호출이 된다. 즉, invoke를 이용해 자주 호출해야 하는 함수를, 객체의 이름+()만으로도(물론 invoke 내의 매개변수가 있으면 () 내에 매개변수를 넣어줘야겠지만!) 호출할 수 있게 되는 것이다.

반응형