一、Lamabda表达式定义

Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。
Lambda表达式可以表示闭包,最早出现C#3.0,随着时间推移新版本JavaScript、Java8,Pathton等语言也都开始支持。

更多匿名函数介绍:https://blog.csdn.net/u011127019/article/details/113714566

二、Lamabda表达式语法

C#、JavaScript的语法一样: 用=> 符号声明

参数列表 => 语句或语句块

Java/C++的语法一样: 用-> 符号声明

参数列表 -> 语句或语句块

Pathon中:用:符号声明

三、C# 中Lamabda使用场景

1.拉姆达表达式 和 委托

public delegate void NoticeAll(string name);
static void LambdaTest()
{//拉姆达表达式 和  委托NoticeAll notice1 = (name1) =>{Console.WriteLine($"济南通知到了,{name1}");};notice1 += (name2) =>{Console.WriteLine($"聊城通知到了【{name2}】");};//触发委托的多播链notice1("张三");//拉姆达表达式回调GetSum(10, 20, res =>{Console.WriteLine("计算结果:" + res);});
}
static void GetSum(int num1, int num2, Action<int> onSuccess)
{int result = num1 + num2;if (onSuccess != null)onSuccess(result);
}

2.拉姆达表达式 和 Linq

        static void LambdaTest2(){//拉姆达表达式 和 Linqint[] nums = new int[] { 10, 1, 3, 5, -2 };int max = nums.Max();List<Student> list = new List<Student>() {new Student(){ID=1,Name="张三",Score=100 },new Student(){ID=2,Name="李四",Score=80 },new Student(){ID=3,Name="王五",Score=60 },new Student(){ID=4,Name="赵六",Score=120 },};// 找id=1 的学生Student studen1 = list.Where(q => q.Score == 1).FirstOrDefault();//找最高分decimal maxScore = list.Max(q => q.Score);}public class Student{public int ID { get; set; }public string Name { get; set; }public decimal Score { get; set; }}

3.拉姆达表达式树 Expression

//定义表达式
Expression<Func<Student, bool>> lambda1 = q => q.Score > 60;
Expression<Func<Student, bool>> lambda2 = q => q.ID > 1;
//合并表达式
BinaryExpression temp = Expression.And(lambda1, lambda2);
Expression<Func<Student, bool>> lambda3 = Expression.Lambda<Func<Student, bool>>(temp);
//执行表达式
Student student2 = list.Where(lambda3.Compile()).FirstOrDefault();

四、JavaScript 表达式使用

nodejs中支持,新版本的浏览器中也都支持了。

function getSum(num1,num2,onSuccess){var result=num1+num2;onSuccess(result);
}
//回调函数,匿名
getSum(20,30,res=>{console.info('计算结果:'+res);
});

更多:

C# 委托、事件、回调 讲解

C# 匿名函数_C# 匿名函数使用整理

C# 匿名对象_C#匿名类型_C# 匿名对象使用整理

拉姆达表达式/Lambda表达式/lambda expression 使用整理相关推荐

  1. 拉姆达表达式相关知识

    拉姆达表达式 拉姆达表达式是创建匿名函数的另一种方法.因此,拉姆达表达式可以赋值给委托.虽然主要在操作LINQ中使用拉姆达表        达式,但是这种表达式也适用于委托和事件. 拉姆达表达式运算符 ...

  2. 匿名函数 和 拉姆达表达式

    匿名函数 匿名方法是创建与特定委托实例相关联的未命名代码块的一种方法.可以通过在代码块后面跟上delegate关键字来创建匿名方法. delegate void print();delegate st ...

  3. java8新特性(拉姆达表达式lambda)

    一.函数式接口 函数式接口(functional interface 也叫功能性接口,其实是同一个东西).简单来说,函数式接口是只包含一个方法的接口.比如Java标准库中的java.lang.Runn ...

  4. lambda表达式 拉姆达

    lambda表达式 拉姆达 学习这个之前,需要明确 有一种接口叫做函数式接口,只允许接口里面只有一个函数 可以使用 @FunctionalInterface进行注解 如果这个接口里面定义了两个方法,就 ...

  5. java拉姆达表达式事例,Java Lambda表达式详解和实例

    简介 Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式允许你通过表达式来代替功能接口. lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体( ...

  6. java 获取集合对象中某个属性不为空的数据集合 lambda获取【拉姆达表达式 】

    首先我创建了一个测试的类. 这个随意哈. public class Person {private String name;private String age;private Integer id; ...

  7. java1.8 Lambda拉姆达表达式深入探究

    当我们遇到下面情况时: SingleObj.getInstance().setRunnable(new Runnable() {@Overridepublic void run() {} }); 编译 ...

  8. 关于常用的Lambda(拉姆达)表达式

    ISO C++ 11 标准的一大亮点是引入Lambda表达式.基本语法如下: [capture list] (parameter list) ->return type { function b ...

  9. 拉姆达表达式(Lambda Expressions)

    让我们先看一个简单的拉姆达表达式: x=>x/2 这个表达式的意思是:x为参数,对x进行相应的操作后的结果作为返回值. 通过这个拉姆达表达式,我们可以看到: 这个表达式没有任何类型信息,但这并不 ...

  10. java 拉姆表达式_Java8 lambda表达式10个示例

    Java 8 lambda表达式示例 转自importNew 原文链接 例1.用lambda表达式实现Runnable 我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现R ...

最新文章

  1. 页面嵌套除了iframe还能用什么方法_CTF|有关CSP绕过的方法
  2. 幻灯片:Why Java Sucks and C# Rocks
  3. 零基础学Python(第六章 if条件语句)
  4. js 获取java_js中获取当前时间
  5. tensorflow 转张量类型为float_5个简单的步骤掌握Tensorflow的Tensor
  6. php2twig,symfony2 twig模板引擎,symfony2twig模板_PHP教程
  7. 软件测试 学习之路 linux基础命令 (二)
  8. Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds. If the server requires
  9. 8-过滤器Filter和监听器Listener
  10. 飞控硬件在环之GPS模拟器
  11. Copula函数理论及实现(三维)-MATLAB
  12. win8计算机无法安装打印机驱动程序,win8.1安装打印机驱动的方法 惠普打印机驱动程序安装教程...
  13. 旅游推荐系统毕业设计总结(包含旅游信息爬取、算法应用和旅游推荐系统实现)
  14. python爬虫教程书籍-python入门书籍(爬虫方面)有哪些推荐?
  15. linux ac97声卡驱动下载,《声卡驱动》AC97声卡/创新/主板集成
  16. java写关于温度的算法_摄氏温度和华氏温度的转换之java算法
  17. GitHub消除马赛克项目
  18. 查询结果按照字母顺序排序
  19. 唯美多功能自适应个人主页源码html
  20. 2db多少功率_功率和db换算(功率与db换算表)

热门文章

  1. 移动智能终端之国产操作系统(笔记三)
  2. Maya 基础教程 、 基础操作讲解
  3. 线性代数(一)—— 行列式
  4. 小米MIUI线刷包cust.img、system.img精简教程(一)
  5. 电脑小知识:电脑怎么查看ip地址?
  6. 车牌限行:受雾霾天气影响,某市决定当雾霾指数超过设定值时对车辆进行限行,假设车牌号全为数字,且长度不超过6位,限行规则如下:
  7. php对接抖音小程序担保支付/头条小程序担保支付
  8. VGA高速PCB布局布线设计指南
  9. Kali系列之网卡地址配置
  10. 2021我的前端开发年度总结