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

Anonymous functions


Often when using higher order functions we invoke them using function literals, especially if the function is short:

    listOf(1, 2, 3).filter { it > 1 } 

As you can see, there is no reason to define the passed function anywhere else. When using literals like this, we are unable to specify the return value. This is usually not a problem as the Kotlin compiler will infer the return type for us.

However, sometimes we may wish to be explicit about the return type. In those cases, we can use what is called an anonymous function. This is a function that looks similar to a normal function definition, except the name is omitted:

    fun(a: String, b: String): String = a + b 

This can be used in the following manner:

     val ints = listOf(1, 2, 3) 
     val evens = ints.filter(fun(k: Int) = k % 2 == 0) 

If the parameter type can also be inferred, then that can be omitted as well:

    val evens = ints.filter(fun(k) = k % 2 == 0)