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
目录
相关文章
|
2月前
|
存储 Kotlin
Kotlin中的Lambda表达式基本定义和使用
Kotlin中的Lambda表达式基本定义和使用
18 2
|
2月前
|
存储 Kotlin
Kotlin中的内联函数:提升性能与解决Lambda表达式参数问题
Kotlin中的内联函数:提升性能与解决Lambda表达式参数问题
27 1
|
2月前
|
存储 开发者 Kotlin
Kotlin Lambda表达式与标准库中的高阶函数
Kotlin Lambda表达式与标准库中的高阶函数
17 1
|
1月前
|
Android开发 Kotlin
Android经典面试题之Kotlin中Lambda表达式有哪些用法
Kotlin的Lambda表达式是匿名函数的简洁形式,常用于集合操作和高阶函数。基本语法是`{参数 -> 表达式}`。例如,`{a, b -> a + b}`是一个加法lambda。它们可在`map`、`filter`等函数中使用,也可作为参数传递。单参数时可使用`it`关键字,如`list.map { it * 2 }`。类型推断简化了类型声明。
14 0
|
1月前
|
Android开发 Kotlin
Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
**Kotlin中的匿名函数与Lambda表达式概述:** 匿名函数(`fun`关键字,明确返回类型,支持非局部返回)适合复杂逻辑,而Lambda(简洁语法,类型推断)常用于内联操作和高阶函数参数。两者在语法、返回类型和使用场景上有所区别,但都提供无名函数的能力。
15 0
|
2月前
|
开发者 Kotlin
Kotlin中List的Lambda表达式应用与解析
Kotlin中List的Lambda表达式应用与解析
17 0
|
2月前
|
Kotlin
Kotlin中的When表达式:灵活、强大且直观的条件控制工具
Kotlin中的When表达式:灵活、强大且直观的条件控制工具
23 0
|
安全 Java 编译器
Kotlin 学习笔记(一)—— 基本类型、函数、lambda、类与对象的写法
Kotlin 作为 Android 开发的首选语言,其基础语法和特性需要重点学习。本文概括总结了 Kotlin 的基本类型、关键字、函数、闭包、高阶函数、类与对象等核心知识点,并给出示例代码进行讲解。
167 0
Kotlin 学习笔记(一)—— 基本类型、函数、lambda、类与对象的写法
|
算法 Java 编译器
Kotlin学历之函数与Lambda表达式
Kotlin学历之函数与Lambda表达式
93 0
|
Java Kotlin
【Kotlin】Lambda 表达式 ( 简介 | 表达式语法 | 表达式类型 | 表达式返回值 | 调用方式 | 完整示例 )
【Kotlin】Lambda 表达式 ( 简介 | 表达式语法 | 表达式类型 | 表达式返回值 | 调用方式 | 完整示例 )
285 0
【Kotlin】Lambda 表达式 ( 简介 | 表达式语法 | 表达式类型 | 表达式返回值 | 调用方式 | 完整示例 )