Fragmented - Android Developer Podcast

168: Learning Kotlin: Lambda Expressions Part 2


Listen Later

In this episode, Donn continues his talks about Kotlin Lambda Expressions. He explains how you can use lambda expressions as function parameters and as return types for functions.

This is a very dense episode - if you get lost look at the code snippets below or view on them on fragmentedpodcast.com

class LogReader {
fun processFile(file: File, processLine: (String) -> Unit = {}) {
file.forEachLine {
println("Number of Chars: ${it.length}")
processLine(it)
println("Line Done Processing")
}
}
fun processFileWithHandlers(file: File, logHandler: LogHandler) {
file.forEachLine {
println("Start of Processing")
logHandler.handleLine().forEach { handler -> handler(it) }
println("Line Done Processing")
}
}
}
interface LogHandler {
fun handleLine(): List<(String) -> Unit>
}
val reader = LogReader()
val textFile = File("/Users/donnfelker/scratch/lorem.txt")
// Process with single lambda
reader.processFile(textFile, { println("First 10 Chars: ${it.substring(0..9)}") })
val logHandler = object : LogHandler {
override fun handleLine(): List<(String) -> Unit> {
return listOf<(String) -> Unit>(
{ line -> println("${line.substring(0, 1)}") },
{ line -> println("${line.substring(2, 4)}") },
{ line -> println("${line.substring(5, 10)}") }
)
}
}
// Process with multipe handlers via the logHandler
reader.processFileWithHandlers(textFile, logHandler)
Sponsors 🙏
  • sentry.io - Your code is broken. Let’s fix it together - https://sentry.io/for/android/
  • Contact
    • Discord chat or @fragmentedcast or our Youtube channel
    • @donnfelker and donnfelker (on Instagram)
    • @kaushikgopal and kaushikgopal (on Instagram)
    • ...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