【lambda】lambda表达式详解-创新互联
文章目录创新互联专注于江城企业网站建设,响应式网站设计,成都商城网站开发。江城网站建设公司,为江城等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
提示:自己学习帮助记忆,有问题指出,不喜勿喷!
- 前言
- 一、lambda是什么?
- 二、lambda表达式语法结构
- 结构说明
- 三、lambda表达式四个重要特征
- 四、lambda表达式使用要求
- 总结
前言
lambda:
lambda表达式时jdk8推出的重要新特性之一,使用它设计的代码会更加简洁,当开发者在编写lambda表达式时,也会随之被编译成一个函数式接口。
提示:素材来源于网络整合
可以将lambda表达式理解为匿名函数
,允许将一个函数作为另一个函数的参数,我们可以把lambda表达式理解为一段可以传递的代码(将代码作为实参),也可以理解为函数式编程
,将一个函数作为参数进行传递。
在Java中万物皆对象,Java一直致力维护其对象至上的,在Java的世界里,函数无法独立存在,只能依赖对象调用,在函数式编程
语言中,函数时一等共民,他们可以独立存在,你可以将其赋值给一个变量,或将他们当作参数传给其他函数。JavaScript就是函数式编程典型代表
(parameters) ->expression
或者
(parameters) ->{statements; }
()
用来描述参数列表,{}
用来描述方法体,->
为lambda运算符,parameters表示参数,expression表示表达式,statements表示代码块。
- 一个lambda可以有一个或者多个参数
- 空圆括号代表参数集为空。例如
()->28
- 参数的类型既可以明确声明,也可以根据上下文来推断,例如
(int a)
与(a)
效果相同 - 所有参数需要包含在圆括号内,参数之间用逗号相隔,例如:
(a,b)
或者(int a,int b)
或(String a, int b, float c)
- lambda表达式的主体可包含零条或多条语句
- 如果lambda表达式的主体只有一条语句,花括号
{}
可省略,匿名函数的返回值类型与肢体保持一致 - 当只有一个参数,且类型可推导时,圆括号
()
可省略,例如:a - >return a + a
- 如果 Lambda 表达式的主体包含一条以上语句,则表达式必须包含在花括号
{}
中(形成代码块),匿名函数的返回类型与代码块的返回类型一致,若没有返回则为空
- 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值
- 可选的参数圆括号:一个参数无需定义圆括号,但多个参数必须定义圆括号
- 可选的大括号:如果主题包含了一个语句,就不需要使用大括号
- 可选的返回关键字:如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指明表达式返回了一个数值
lambda表达式的使用比较依赖接口,并对接口有要求。虽然使用lambda表达式可以对某些接口进行简单的实现,但不是所有的接口都可以使用lambda表达式来实现。Lambda 规定接口中只能有一个需要被实现的方法(即只能有一个抽象方法),不是规定接口中只能有一个方法,这也称之为“函数式接口”,比如:java.lang.Runnable
就是一个函数式接口。
注意:jdk 8 中有另一个新特性:default, 被 default 修饰的方法会有默认实现,不是必须被实现的方法,所以不影响 Lambda 表达式的使用。
总结
文章来源链接:https://zhuanlan.zhihu.com/p/266800714
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
当前文章:【lambda】lambda表达式详解-创新互联
文章来源:http://myzitong.com/article/dhseej.html