프로그래밍

[Kotlin] inline

독서와 여행 2021. 3. 29. 17:28
fun main() {

    shortFunc(3){
        println("First call :$it")
        return
    }
}

inline fun shortFunc(a:Int, out:(Int) -> Unit){
    println("Before calling out()")
    out(a)
    println("After calling out()")

}

실행 결과는

 

Before calling out()
First call :3

 

이렇게 나온다

 

inline은 코드를 복사하는 거기 때문에

out(3)이 실행되면 println 하고 return을 해버리기 때문에

    shortFunc(3){
        println("First call :$it")
        return
    }

 

이건 사실     shortFunc(3){println("First call :$it") return}

 

이렇게 생각하면 된다