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

Function references


So far in this chapter, we have already seen how to pass functions as parameters. The ways we have done this so far are either by creating a function literal, or by using a function that returns another function.

Top-level function references

But what if we have a top-level function and we want to use that? We can wrap the function in another function, of course:

    fun isEven(k: Int): Boolean = k % 2 == 0 
 
    val ints = listOf(1, 2, 3, 4, 5) 
    ints.filter { isEven(it) } 

The alternative is to use what is called a function reference. Using the same definition for isEven, we can write it as follows:

    val ints = listOf(1, 2, 3, 4, 5) 
    ints.filter(::isEven) 

Note that the :: syntax is used before the function name.

Member and extension function references

Function references can be used for extension and member functions by prefixing them with the name of the class. Let's define an extension function on integers called isOdd, as follows...