函数式编程思想概述
在数学中,
函数
就是有输入量、输出量的一套计算方案,也就是
“
拿什么东西做什么事情
”
。相对而言,面向对象过
分强调
“
必须通过对象的形式来做事情
”
,而函数式思想则尽量忽略面向对象的复杂语法
——
强调做什么,而不是以
什么形式做
。
面向对象的思想
:
做一件事情
,
找一个能解决这个事情的对象
,
调用对象的方法
,
完成事情
.
函数式编程思想
:
只要能获取到结果
,
谁去做的
,
怎么做的都不重要
,
重视的是结果
,
不重视过程
比如当我们需要从北京到上海时,可以选择高铁、汽车、骑行或是徒步。我们的真正目的是到达上海,而如何才能到达
上海的形式并不重要,所以我们一直在探索有没有比高铁更好的方式
——
搭乘飞机。
lambda表达式在jdk1.8或者更高的版本才能编译通过
Lambda
表达式的
标准格式
为:
(
参数类型 参数名称
) ‐> {
代码语句
}
Lambda表达式的参数和返回值
小括号里是参数,reuturn返回返回值
Lambda表达式省略式
可推导即可省略
省略规则:
小括号里的参数类型可以省略
如果小括号里只有一个参数,小括号可以省略
如果大括号里有且只有一个语句,无论是否有返回值,都可以省略return,大括号,语句的分号
Lambda
的使用前提
.
使用
Lambda
必须具有接口,且要求
接口中有且仅有一个抽象方法
使用
Lambda
必须具有
上下文推断。
也就是方法的参数或局部变量类型必须为 Lambda 对应的接口类型,才能使用 Lambda 作为该接口的实例。
也就是方法的参数或局部变量类型必须为 Lambda 对应的接口类型,才能使用 Lambda 作为该接口的实例。
有且仅有一个抽象方法的接口,称为
“
函数式接口
”
。