Podchaser Logo
Home
168: Learning Kotlin: Lambda Expressions Part 2

168: Learning Kotlin: Lambda Expressions Part 2

Released Monday, 8th July 2019
Good episode? Give it some love!
168: Learning Kotlin: Lambda Expressions Part 2

168: Learning Kotlin: Lambda Expressions Part 2

168: Learning Kotlin: Lambda Expressions Part 2

168: Learning Kotlin: Lambda Expressions Part 2

Monday, 8th July 2019
Good episode? Give it some love!
Rate Episode

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 lambdareader.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 logHandlerreader.processFileWithHandlers(textFile, logHandler)

Sponsors 🙏

  • sentry.io - Your code is broken. Let’s fix it together - https://sentry.io/for/android/

Contact

Show More

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features