Book Image

Programming Kotlin

Book Image

Programming Kotlin

Overview of this book

Quickly learn the fundamentals of the Kotlin language and see it in action on the web. Easy to follow and covering the full set of programming features, this book will get you fluent in Kotlin for Android.
Table of Contents (20 chapters)
Programming Kotlin
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface

Inline functions


As we have seen from earlier sections, functions are instances of objects, and, of course, each instance requires an allocation in the heap. There are also method invocations required when invoking the function. Overall, using functions introduces an overhead.

Kotlin allows us to avoid this overhead by use of the inline keyword. This keyword indicates to the compiler that the function marked as inline, as well as function parameters, should be expanded and generated inline at the call site, hence the name.

What does this mean exactly? Let's consider a function that handles resources in a safe manner: that is, the resource will always be closed correctly, even if the code throws an exception:

    fun <T : AutoCloseable, U> withResource(resource: T, fn: (T) -> U): U { 
      try { 
        return fn(resource) 
      } finally { 
        resource.close() 
      } 
    } 

As you can see, we are just wrapping the application of the function...