Fragmented - Android Developer Podcast

165: Learning Kotlin: Lambda Expressions Part 1


Listen Later

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:

val myLambda : Type = { argumentList -> codeBody }

The codeBody is the only section that is not optional.

Double lambda expression (doubles an integer) with type inference

val double = { number: Int -> number * 2 }
val result = double(4)
// result = 8 now

Double string multi-line lambda with type inference.

val doubleString = { number: Int ->
// codebody
val doubleResult = number * 2
doubleResult.toString()
// Kotlin knows this will return a string
}

Type declaration in a lambda

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

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...
...more
View all episodesView all episodes
Download on the App Store

Fragmented - Android Developer PodcastBy Donn Felker, Kaushik Gopal

  • 5
  • 5
  • 5
  • 5
  • 5

5

68 ratings


More shows like Fragmented - Android Developer Podcast

View all
Design Details by Brian Lovin, Marshall Bock

Design Details

361 Listeners

Developer Tea by Jonathan Cutrell

Developer Tea

402 Listeners

Does Not Compute by Sean Washington, Rockwell Schrock

Does Not Compute

53 Listeners

Toolsday by Una Kravets, Chris Dhanaraj

Toolsday

48 Listeners

Swift Unwrapped by JP Simard, Jesse Squires, Spec Network, Inc.

Swift Unwrapped

90 Listeners