Kotlin/6. Lambda
6.4 inline 함수
yswn1531
2023. 9. 29. 21:51
inline 함수
inline fun high(function: (Int, Int) -> Int ) {
//내용
}
- 고차함수 앞에 inline을 붙여서 사용
- 고차함수를 사용할 때 발생하는 런타임 오버헤드를 없애는 효과를 낼 때 주로 사용
- 함수의 코드 자체를 복제해서 가져오기 때문에 객체가 부가적으로 생성되는 것을 방지함
- 재사용이 많을 경우 코드 사이즈가 커지므로 사용을 자제하는 것이 좋음
noinline
inline fun high(function: (Int, Int) -> Int, noinline function2: (Unit) -> Int ) {
//내용
}
- inline 함수에서 파라미터로 고차함수가 2개 이상인 경우 inline을 적용 시키고 싶지 않을 때 사용
crossinline
inline fun high(function: (Int, Int) -> Int, crossinline function2: (Unit) -> Int ) {
println(function(1,3))
}
- non-local control(비지역 권한)을 막는 용도로 선언하기 위해 사용
- 컴파일 시 return을 쓸 수 없게 알림