浅谈Java lambda表达式和函数式编程


需要声明的是,我不是专家,而是一个初学者,最近在学习函数式编程,所以想融合网上的资料做一个简单的总结。

什么是Java lambda表达式?

写Java的小伙伴们可能知道lambda表达式,lambda简明的地将代码或方法作为参数传递进去执行,Lambda作为函数式编程中的基础部分,在其他编程语言中早已大展身手了,在java8到来的时候,Java也开始支持Lambda了。它极大增强了代码的表达能力,它的语法格式如下:

no.1 (parameters) -> expression
no.2 (parameters) ->{ statements; }

(形式参数) -> {代码块}

Lambda表达式的三要素:

  • 形式参数,箭头,代码块

Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。

下面是常用的几种情况:

() -> 7 //不需要参数 
(x, y) -> x – y   //返回俩个参数的差值

当然,每一个工具都有利有弊,Lambda表达式也不例外!
优点:

  1. 代码简洁紧凑,提高程序运行效率
  2. 减少匿名内部类的创建,节省资源
  3. 可以替代几乎所有的for循环

缺点:

  1. 对于不熟悉的开发者来说,不太容易看得懂
  2. 不容易调试
  3. 可读性差,不利于维护

函数式编程是啥?

函数式编程的起源,是一门叫做范畴论(Category Theory)的数学分支。

首先,函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。–百度百科

假如把我们的真实世界抽象成事物事物之间的关系,我们的这个世界是不是就可以抽象的看作许多事物和事物之间的关系组成的一个大的模型吗?这就是函数式编程的思想。

简单来说呢,在函数式编程中,函数就是一个管道(pipe)。这头进去一个值,那头就会出来一个新的值,没有其他作用

lambda表达式是函数式编程的一种吗?

lambda表达式是遵循编程的思想的,它就是函数式编程诞生的产物。

Java8中有哪几种重要新特性被引入进来了?

  • Lambda表达式
  • 函数式接口
  • 方法引用与构造器引用
  • Stream API
  • 接口的默认方法与静态方法
  • 新时间日期API
  • Optional 类
  • 其他新特性

其中,引用最广泛的新特性是Lambda表达式和Stream API。

  • 28
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜bu菜

夏日炎炎 有你超甜

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值