Search

Home > Fragmented - Android Developer Podcast > 165: Learning Kotlin: Lambda Expressions Part 1
Podcast: Fragmented - Android Developer Podcast
Episode:

165: Learning Kotlin: Lambda Expressions Part 1

Category: Technology
Duration: 00:15:38
Publish Date: 2019-06-17 00:00:00
Description:

In this episode, Donn talks about Kotlin Lambda Expressions. He explains the syntax and how to build a couple of simple lambda expressions with and without type inference and declaration. We wrap up with a small example of passing a small lambda with multiple values to a function. See the show notes below for more info. This is part 1 of a multi-part series on Lambda Expressions in Kotlin.

The basic syntax of a lambda expression: kotlin val myLambda : Type = { argumentList -> codeBody }

The codeBody is the only section that is not optional.

Double lambda expression (doubles an integer) with type inference kotlin val double = { number: Int -> number * 2 } val result = double(4) // result = 8 now

Double string multi-line lambda with type inference. kotlin val doubleString = { number: Int -> // codebody val doubleResult = number * 2 doubleResult.toString() // Kotlin knows this will return a string }

Type declaration in a lambda kotlin val myLambda: (String, Int) -> String = { str, int -> "$str - ${int.toString()}" // "Donn - 32" } val result = myLambda("Donn", 32) // result = "Donn - 32"

Preview of next week … passing a lambda to a function ```kotlin fun doWork(name: String, favoriteNumber: Int, someLambda: (String, Int) -> String) { // Do some processing, this is a contrived example val repeatedString = "$name$name" val result = someLambda(repeatedString, favoriteNumber) println(result) }

// Usage doWork("Donn", 32) { str, int -> val someNewValue = "$str is my parameter and so is $int" someNewValue.length.toString() // this is returned }

// '37' is printed via println

// Or use it like this, the lambda code body is what can change, this is where the power is at doWork("Donn", 32) { name, count -> var result = "" for(i in 1..count) { result += "$name" } result // this is returned }

// loops over and concatinates "Donn" until the favorite number (aka count) is met. // Output looks like: "DonnDonnDonnDonnDonnDonn..." and so on...

```

Total Play: 0

Users also like

300+ Episodes
Android Deve .. 40+     2