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}
이렇게 생각하면 된다
[Kotlin] 라벨 (0) | 2021.03.30 |
---|---|
[Kotlin] 함수 선언 (0) | 2021.03.29 |
[Kotlin] lamba (0) | 2021.03.29 |
[Kotlin] 가변인자 vararg (0) | 2021.03.29 |
[Kotlin] command line 컴파일 (0) | 2021.03.27 |
댓글 영역