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을 쓸 수 없게 알림