Kotlin中lambda表达式详解

简介: lambda运算时java后面版本引进的,所以实现的仅仅是从形式上简化代码,内部的优化并不是非常出色,而Kotlin一开始就支持函数式编程,使得其lambda表达式具有性能上的优势,同时Kotlin简洁的风格也给lambda表达式进一步简化提供了一个良好的实现方式,下面带大家具体看看他们之间的区别以及如何更好的使用Kotlin的极简化lambda表达式

一、前言

lambda运算时java后面版本引进的,所以实现的仅仅是从形式上简化代码,内部的优化并不是非常出色,而Kotlin一开始就支持函数式编程,使得其lambda表达式具有性能上的优势,同时Kotlin简洁的风格也给lambda表达式进一步简化提供了一个良好的实现方式,下面带大家具体看看他们之间的区别以及如何更好的使用Kotlin的极简化lambda表达式

二、Kotlin lambda表达式

java的一般lambda表达式

由单抽象接口实现的,并不是所有的函数都能使用lambda表达式,需要有这个接口的支持

(参数列表) -> {函数体}

//例子
//打印一个加法的运算结果,这里是Runnable()接口实现的
new Thread (()->System.out.println("hello")).start();

Kotlin的lambda表达式

最标准的lambda表达式

{
    参数列表 -> 函数体
}

当lambda表达式里面没有参数时,可省略 ->

{
    函数体
}

如果函数类型时最后一个类型,则可以将括号移动到括号外面

fun1({v -> println("hello wresource")})

//可以简化成下面的表达式
fun1(){
    v -> println("hello wresource")
}

如果参数只有一个lambda表达式,则可以将小括号去掉

fun1(){
    v -> println("hello wresource")
}

//可以简化成
fun1{
    v -> println("hello wresource")
}

补充

  • 若lambda表达式仅有一个参数,则可以使用默认参数it进行替代
  • 若具有多个参数,则未使用的参数可以使用下划线_替代
  • 方法引用,java里面时类名::方法名实现的,kotlin亦如此
  • Kotlin对于单抽象接口的转换,即将kotlin的lambda函数体转换成单个方法的java接口实现,只要类型匹配上就可以转换

加入我的技术社区,每天一起学习Kotlin

点击下方的logo即可加入kotlin开发者社区:

074943eea593491db21ac32d9a3da6e3.jpg
目录
相关文章
|
1月前
|
IDE 开发工具 Kotlin
Kotlin - 函数与Lambda表达式
Kotlin - 函数与Lambda表达式
44 13
|
29天前
|
IDE 开发工具 Kotlin
Kotlin教程笔记(6) - 函数与Lambda表达式
Kotlin教程笔记(6) - 函数与Lambda表达式
51 1
|
1月前
|
IDE 开发工具 Kotlin
Kotlin - 函数与Lambda表达式
Kotlin - 函数与Lambda表达式
|
1月前
|
IDE 开发工具 Kotlin
Kotlin - 函数与Lambda表达式
Kotlin - 函数与Lambda表达式
|
1月前
|
IDE 开发工具 Kotlin
Kotlin教程笔记(6) - 函数与Lambda表达式
Kotlin教程笔记(6) - 函数与Lambda表达式
46 4
|
1月前
|
IDE 开发工具 Kotlin
Kotlin教程笔记(6) - 函数与Lambda表达式
Kotlin教程笔记(6) - 函数与Lambda表达式
42 1
|
1月前
|
IDE 开发工具 Kotlin
Kotlin - 函数与Lambda表达式
Kotlin - 函数与Lambda表达式
38 0
|
1月前
|
IDE 开发工具 Kotlin
Kotlin - 函数与Lambda表达式
Kotlin - 函数与Lambda表达式
23 6
|
1月前
|
IDE 开发工具 开发者
Kotlin教程笔记(6) - 函数与Lambda表达式
本系列教程详细讲解了 Kotlin 语法,适合需要深入了解 Kotlin 的开发者。若需快速学习 Kotlin,建议参考“简洁”系列教程。本文重点介绍了 Kotlin 中的函数与 Lambda 表达式,包括函数定义、匿名函数、Lambda 表达式的简化及调用方法等内容。通过实例演示了如何在实际开发中灵活运用这些概念。
26 1
|
2月前
|
IDE 开发工具 Kotlin
Kotlin教程笔记(6) - 函数与Lambda表达式
Kotlin教程笔记(6) - 函数与Lambda表达式
44 1