Lambda 表达式




前言



什么是函数?

先了解函数的概念; 函数是一种最基本的任务,一个大型程序就是一个顶层函数调用若干底层函数,这些被调用的函数又可以调用其他函数,即大任务被一层层拆解并执行。所以函数就是面向过程的程序设计的基本单元。



什么是函数式编程?

函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。

函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!



起因

函数式编程最早是数学家 阿隆佐·邱奇 研究的一套函数变换逻辑,又称 Lambda Calculus(λ-Calculus),所以也经常把函数式编程称为 Lambda 计算。



什么是 Lambda?

Lambda 表达式理解为简洁地表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。

  • 匿名:没有一个确定的名称
  • 函数:它不属于一个特定的类,但是却有参数列表、函数主体、返回类型、异常列表
  • 传递:可以作为参数传递给方法、或者存储在变量中
  • 简洁:不需要写很多模板代码


Lambda 表达式的语法格式

	(参数类型 参数名) -> {
	    方法体;
	    return 返回值;
	}	


	(parameters) -> expression
	或
	(parameters) ->{ statements; }


	格式解释:

		( ) 小括号中的参数和之前方法的参数写法一样,可以写任意个参数,如果多个参数,要使用逗号隔开。
		 -> 是一个运算符,表示指向性动作。
		{ } 大括号中的方法体以及 return 返回值的写法和之前方法的大括号中的写法一样。


Lambda 表达式的重要特征

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

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

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

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



Lambda 的弊端

Lambda 表达式虽然带来了代码的简洁,但是也有其局限性:

  1. 可读性差,与啰嗦的但是清晰的匿名类代码结构比较起来,Lambda 表达式一旦变得比较长,就难以理解;
  2. 不便于调试,很难在 Lambda 表达式中增加调试信息,比如日志;
  3. 版本支持,Lambda 表达式在 JDK8 版本中才开始支持,如果系统使用的是以前的版本,考虑系统的稳定性等原因,而不愿意升级,那么就无法使用。
  • Lambda 比较适合用在简短的业务代码中,并不适合用在复杂的系统中,会加大维护成本。














Note:
欢迎点赞,留言,转载请在文章页面明显位置给出原文链接
知者,感谢您在茫茫人海中阅读了我的文章
没有个性 哪来的签名!
详情请关注点我
持续更新中

扫一扫 有惊喜!
© 2020 11 - Guyu.com | 【版权所有 侵权必究】
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值