美文网首页
Kevin Learn Kotlin:Lambda 表达式

Kevin Learn Kotlin:Lambda 表达式

作者: Kevin_小飞象 | 来源:发表于2021-12-03 15:37 被阅读0次
每日一图.jpg

许多现代高级编程语言其实在很早之前就开始支持 Lambda 编程了,但是 Java 却直到 JDK 1.8 之后才加入了 Lambda 编程的语法支持。值得庆幸的是,Kotlin 从第一个版本开始就支持了 Lambda 编程。 Lambda 的出现确实是减少了代码量的编写,同时也使代码变得更简洁明了。

Lambda 语法

{参数名1:参数类型,参数名2:参数类型 -> 函数体}
需求1:如何在一个水果集合中找到单词最长的那个水果?

fun main() {
    val list = listOf("apple","orange","pear","watermelon","grape")
    val maxLen = list.maxByOrNull { it.length }
    println("max length fruit is ${maxLen}")
}

需求2:如何在一个水果集合中水果名都变成大写?

fun main() {
    val list = listOf("apple","orange","pear","watermelon","grape")
    val newList = list.map { it.toUpperCase() }
    for (fruit in newList){
        println("$fruit")
    }
}

需求3:数组经过索引和元素相乘后得到新的数组

fun main() {
    val args = arrayOf(1,3,5,7)
    // 调用方式:括号内
    transform(args,action = {index, element ->
        index * element
    })

    //调用方式:括号外
    transform(args){index, element ->
        index * element
    }
}

/*
* 要求返回变换后的元素,会替换掉老的元素
*
* */
fun transform(array: Array<Int>,action:(index: Int,element: Int)->Int){
    for (index in array.indices) {
        val newArray = action(index, array[index])
        array[index] = newArray
    }
}

Lambda 实践

如何使用 it

  • it 并不是 Kotlin 中的关键字,也不是保留字;
  • it 是在当一个高阶方法中 Lambda 表达式的参数只有一个的时候可以使用 it 来使用该参数;
  • it 可表示为单个参数的隐式名称,是 Kotlin 语言约定的

实例:使用隐形参数 it

fun main() {
    val list = listOf("apple","orange","pear","watermelon","grape")
    list.forEach {
        println(it)
    }
}

相关文章

网友评论

      本文标题:Kevin Learn Kotlin:Lambda 表达式

      本文链接:https://www.haomeiwen.com/subject/tljxxrtx.html