Lambda表达式

这里是修真院后端小课堂,每篇分享文从

【 Lambda表达式】

大家好,我是IT修真院上海分院第8期的学员朱明星,一枚正直纯洁善良的JAVA程序员,今天给大家分享一下,修真院官网任务十,深度思考中的知识点——Lambda表达式

(1)背景介绍:

为什么要引入lambda表达式?Java是面向对象语言,要在Java中传递一段代码段需要构造对象,这个对象的类需要一个方法能包含所需的代码。Lambda是函数式编程,允许把函数作为一个方法的参数,可以将方法像参数一样传递。使用 Lambda 表达式可以使代码变的更加简洁紧凑。

(2)知识剖析:

语法格式

参数 -> 表达式

(parameters) -> expression

(parameters) -> { statements;

可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。

可选的参数圆括号:一个参数无需定义圆括号,但多个参数需要定义圆括号。

可选的大括号:如果主体包含了一个语句,就不需要使用大括号。

可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。

1)如果代码要完成的计算无法放在一个表达式中,就可以像写方法一样,把这些代码放在{}中,并包含显式的return语句。例如:

(String first, String second) ->

if (first.length() < second.length()) return -1;

else if (first.length() > second.length()) return 1;

else return 0;

}

2)即使lambda表达式没有参数,仍然要提供空括号,就像无参数方法一样。例如:

() -> { for (int i = 0; i <= 5; i++) System.out.println(); }

3)如果可以推导出一个lambda表达式的类型,则可以忽略其类型。例如:
Comparator < String > comp = (first, second) -> first.length() - second.length();

编译器可以推导出first和second必然是字符串,因为这个lambda表达式将赋给一个字符串比较器。

(4)如果方法只有一个参数,而且这个参数的类型可以推导得出,可以忽略小括号。例如:

x -> 2 * x

Lambda表达式需要函数式接口的支持

(3)常见问题:

什么是函数式接口?

(4)解决方案:

只有一个抽象方法的接口,可以用@FunctionalInterface修饰

(5)编码实战:

见视频

(6)拓展思考:

lambda表达式的性能问题

(7)参考文献:

精通Spring4.X企业应用开发实战

(8)更多讨论:

Q1.lambda表达式和匿名类什么关系?

A1:与匿名类 概念相比较,Lambda其实就是匿名方法,这是一种把方法作为参数进行传递的编程思想。代码很简洁

Q2.如果lambda只能使用一次,那么它的优势又有什么呢

A2:lamada表达式简化了接口实现的过程,使得代码结构更加简洁。lamada的使用非常灵活。

Q3.我们为什么需要Lambda表达式呢?

A3:lambda表达式通过实现匿名类的方式对接口或者类进行了实例化,但是因为实例化的对象没有名字,也就无法进行二次使用,所以lambda表达式只能够使用一次,也就只能够使用或者执行一个方法。

(10)结束语:

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

资源下载链接为: https://pan.quark.cn/s/d3128e15f681 罗技MX Master 2S是一款高端无线鼠标,凭借其卓越的性能和舒适性,深受专业设计师、程序员以及需要长时间使用鼠标的人群的喜爱。它在macOS平台上表现出色,功能丰富。而“LogiMgr Installer 8.20.233.zip”是该鼠标在macOS系统上对应的软件安装程序,版本号为8.20.233,主要功能如下: 驱动安装:该安装包可确保MX Master 2S在macOS系统中被正确识别和配置,发挥出最佳硬件性能,同时保证良好的兼容性。它会安装必要的驱动程序,从而启用鼠标的高级功能。 自定义设置:借助此软件,用户能够根据自己的工作习惯,对MX Master 2S的各个按钮和滚轮功能进行自定义。比如设置特定快捷键、调整滚动速度和方向等,以满足个性化需求。 Flow功能:罗技Flow是一项创新技术,允许用户在多台设备间无缝切换。只需在软件中完成设备配置,鼠标就能在不同电脑之间进行复制、粘贴操作,从而大幅提升工作效率。 电池管理:软件具备电池状态监控功能,可帮助用户实时了解MX Master 2S的电量情况,并及时提醒用户充电,避免因电量不足而影响工作。 手势控制:MX Master 2S配备独特的侧边滚轮和拇指按钮,用户可通过软件定义这些手势,实现诸如浏览页面、切换应用等操作,进一步提升使用便捷性。 兼容性优化:罗技的软件会定期更新,以适应macOS系统的最新变化,确保软件与操作系统始终保持良好的兼容性,保障鼠标在不同系统版本下都能稳定运行。 设备配对:对于拥有多个罗技设备的用户,该软件能够方便地管理和配对这些设备,实现快速切换,满足多设备使用场景下的需求。 在安装“LogiMgr Installer 8.20.233.app”时,用户需确保macOS系统满足软件的最低要求,并
资源下载链接为: https://pan.quark.cn/s/27e1210fbf58 《RT-Thread在STM32F103C8T6上的移植实战指南》 RT-Thread是一款开源、轻量级且高可扩展性的实时操作系统(RTOS),广泛应用于物联网、工业控制和消费电子等领域。STM32F103C8T6作为一款基于ARM Cortex-M3内核的微控制器,凭借其丰富的外设资源和高性价比,成为嵌入式系统学习与开发的理想平台。本文将详细介绍如何将RT-Thread移植到STM32F103C8T6,并逐步添加rt_printf支持和Finsh组件,以实现调试与交互功能。 一、移植准备 移植RT-Thread到STM32F103C8T6的第一步是下载RT-Thread Nano的源码,具体操作方法在2.下载RT-Thread Nano源码中详细说明。RT-Thread Nano是RT-Thread的精简版,专为资源受限的嵌入式设备设计。 二、整合源码 将下载的RT-Thread Nano源码复制到STM32的裸机工程中,相关步骤在3.拷贝RT-Thread Nano源码到裸机工程中介绍。需确保源码结构与工程匹配,以便后续编译和配置。 三、调整工程目录结构 为适应STM32开发环境,需对工程目录结构进行调整。5.修改工程目录结构中详细说明了如何组织和调整文件,确保编译器正确识别和处理所有源文件。 四、删除未使用的文件 为优化内存占用,需删除RT-Thread中不必要的文件。4.删除RT-Thread中不必要的文件中列出了可安全移除的文件清单。 五、编译与错误修复 完成目录结构调整和冗余文件删除后,开始编译工程。在6.编译工程并修复错误中,将逐一解决编译过程中的错误和警告,确保代码无误。 六、配置Board.c文件 8.修改board.c文件涉及针对STM32F103C8T6硬件特性的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值