【lambda】lambda表达式详解-创新互联

提示:自己学习帮助记忆,有问题指出,不喜勿喷!

创新互联专注于江城企业网站建设,响应式网站设计,成都商城网站开发。江城网站建设公司,为江城等地区提供建站服务。全流程按需搭建网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

文章目录
  • 前言
  • 一、lambda是什么?
  • 二、lambda表达式语法结构
    • 结构说明
  • 三、lambda表达式四个重要特征
  • 四、lambda表达式使用要求
  • 总结


前言

lambda:
lambda表达式时jdk8推出的重要新特性之一,使用它设计的代码会更加简洁,当开发者在编写lambda表达式时,也会随之被编译成一个函数式接口。


提示:素材来源于网络整合

一、lambda是什么?

可以将lambda表达式理解为匿名函数,允许将一个函数作为另一个函数的参数,我们可以把lambda表达式理解为一段可以传递的代码(将代码作为实参),也可以理解为函数式编程,将一个函数作为参数进行传递。

在Java中万物皆对象,Java一直致力维护其对象至上的,在Java的世界里,函数无法独立存在,只能依赖对象调用,在函数式编程语言中,函数时一等共民,他们可以独立存在,你可以将其赋值给一个变量,或将他们当作参数传给其他函数。JavaScript就是函数式编程典型代表

二、lambda表达式语法结构
(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表达式可以对某些接口进行简单的实现,但不是所有的接口都可以使用lambda表达式来实现。Lambda 规定接口中只能有一个需要被实现的方法(即只能有一个抽象方法),不是规定接口中只能有一个方法,这也称之为“函数式接口”,比如:java.lang.Runnable就是一个函数式接口。

注意:jdk 8 中有另一个新特性:default, 被 default 修饰的方法会有默认实现,不是必须被实现的方法,所以不影响 Lambda 表达式的使用。


总结

文章来源链接:https://zhuanlan.zhihu.com/p/266800714

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站名称:【lambda】lambda表达式详解-创新互联
路径分享:http://scjbc.cn/article/dhseej.html

其他资讯