lambda表达式是对匿名方法的一种改进,具有更加简洁的语法和更易理解的形式,lambda表达式可以包括表达式和语句,并且可以用与创建委托或表达式目录树类型。

  lambda表达式都使用Lambda运算符=>,读作goes to。该Lambda运算符的左边是输入参数,右边包含表达式或者语句块。

Lambda表达式的声明:(参数列表)=>{方法体}

  其中的参数列表和普通方法的参数列表相同,Lambda表达式是升级版的匿名方法,如下面语法所示:

返回类型  方法名(参数){方法体}  //普通方法
delegate (参数列表) {方法体}  //匿名方法
(参数列表)=>{方法体}  //

下面举个例子:

//求两个整数最大值(int x,int y)=>{return x>y?x:y;}//决断一个字符串是否是数字(string text)=>{double d;return double.TryParse(text,out d);}//输入hello world()=>{Console.WriteLine("hello world");}

特别需要指出的是如果lambda表达式没有参数,则参数为空,但必须要圆括号。

下面看一下lambda表达式的更简洁语法:

(1)如果lambda表达式的参数类型是可以通过上下午推断时,参数列表外面的圆括号也可以省略,如下代码所示

(x,y)=>{return x>y?x:y;}

(2)若果lambda表达式只有一个参数且参数类型被省略,则参数列表外面的圆括号也可以省略,如下代码

x=>{return x++;}

(3)如果lambda语句的方法体只有一条return语句,且return语句有返回类型,则return关键字、分号、大括号都可以省略,此时lambda表达式的方法体只剩下一个表达式,如下例子,

(x,y)=>x>y?x:y;
//(x,y)=>{retrun x>y?x:y;}
x=>x++;
//x=>{retrun x++;}

举例说明lambda表达式的应用:

输出的结果是:

转自http://www.cnblogs.com/flykai/p/3235827.html

转载于:https://www.cnblogs.com/zbo/p/3236074.html

Lambda表达式【转】相关推荐

  1. Lambda 表达式基础理论与示例

    Lambda 表达式基础理论与示例 Lambda 表达式,也可称为闭包,推动 Java 8 发布的最重要新特性. Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中). 使用 Lam ...

  2. lambda表达式树

    一.定义: 表达式树又称为表达式目录树,以数据形式表示语言级代码.所有的数据都存储在树结构中,每个结点表示一个表达式(Expression). 二.要点: –Lambda表达式的参数类型可以忽略,因为 ...

  3. java 8 lambda reduce_JDK8新特性Lambda表达式体验

    "Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstra ...

  4. java saf_Java 8 Lambda表达式探险

    为什么? 我们为什么需要Lambda表达式 主要有三个原因: > 更加紧凑的代码 比如Java中现有的匿名内部类以及监听器(listeners)和事件处理器(handlers)都显得很冗长 &g ...

  5. lamda表达式python_Python--13 lambda表达式

    python 允许使用lambda表达式来创建匿名函数 lambda表达式 >>>def ds(x): ... return 2 * x +1 ... >>> ds ...

  6. C++11:Lambda表达式(匿名函数)理解

    C++在C11标准中引入了匿名函数,即没有名字的临时函数,又称之为lambda表达式.lambda表达式 实质上是创建一个匿名函数/对象.即你可以理解为(Lambda 表达式实际上是一个函数,只是它没 ...

  7. java8 lambda 表达式详解

    lambada 表达式实质上是一个匿名方法,但该方法并非独立执行,而是用于实现由函数式接口定义的唯一抽象方法 使用 lambda 表达式时,会创建实现了函数式接口的一个匿名类实例 可以将 lambda ...

  8. Java8中Lambda表达式的10个例子

    Java8中Lambda表达式的10个例子  例1 用Lambda表达式实现Runnable接口 Java代码   //Before Java 8: new Thread(new Runnable() ...

  9. 【读书笔记】Lambda表达式

    Lambda表达式,是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型. Lambda表达式, 都是用"=>"运算符. 读作"goes t ...

  10. 【C++】lambda 表达式

    1.lambda 表达式 1.1 lambda 特点 lambda表示一个可调用单元,可视为内联函数 范式 : 具有一个返回类型,一个参数列表,一个函数体 [captrue list](paramet ...

最新文章

  1. 阿里巴巴的持久层抛弃了hibernate,采用的却是MyBatis框架。。。
  2. 智源x清华开源FastMoE,万亿AI模型基石
  3. Selenium启动Chrome浏览器提示“请停用以开发者模式运行的扩展程序”的解决办法
  4. python判断实例的类型
  5. 哈尔滨工业大学计算机学院官网,哈尔滨工业大学计算机学院 唐好选 tanghx@hope.hit...
  6. 视觉SLAM笔记(7) 欧氏变换
  7. 如何测量太阳距离地球的距离
  8. 【Unity3D自学记录】Unity3D网络之Socket聊天室初探
  9. 三星全新贴片机SM421(S)参数性能!
  10. C++SOCKET面试题附答案
  11. 2、传输介质——双绞线
  12. CentOS 7.3安装详解
  13. AOP切面之实现计算器加减乘除--基于注解的方式
  14. 【kuangbin】简单搜索 - 13.非常可乐【BFS】
  15. 计算机应用基础文章 茶的功效,【课程改革论文】茶文化下的计算机应用基础教程课程改革(共5535字)...
  16. (数字IC)低功耗设计入门(七)——门级电路低功耗设计优化(续)
  17. python中常用英语口语_常用英语口语100句(超实用)_
  18. 南加州大学计算机科学案例,南加州大学计算机科学录取案例
  19. 边际生产力理论(转载)
  20. 币圈“黑天鹅“事件,USDT完美演绎不可能事件

热门文章

  1. php链接数据库实行增删查改_利用PHP连接数据库——实现用户数据的增删改查的整体操作实例...
  2. python汽车票票系统_长途客运售票系统
  3. mac中flutter配置
  4. HBase学习指南之HBase原理和Shell使用
  5. Fiddler抓取https的设置
  6. java 重定向和转发 的区别
  7. iOS 如何写出更加严谨的应用
  8. [转] Linux GCC 编译使用
  9. Java异常的性能分析
  10. 【转】nginx提示:500 Internal Server Error错误的解决方法