lambda表达式

java8新特性

限于喜欢 提交于 2019-11-28 06:23:58
Java8新特性 回顾: 1 反射:就是把类中的各个成分使用对象表示。解剖技术 反射有关的类 Class<T>:类对象 获取类对象的方式 (1)Person.class (2)Person p=new Person() p.getClass(); (3)Class.forName("com.qf.Person"); Constructor:构造方法 Class<?> clazz=Person.class; clazz.getConstructors(); Constructor con=clazz.getConstructor(参数); Object obj=con.newInstance(参数); Method:方法 Class<?> clazz=Person.class; clazz.getMethods(); //获取所有公开的方法,包含继承的 clazz.getDeclaredMethods();//获取本类中所有的的方法,包含私有的,不包含继承 Method method=clazz.getMethod(“方法名”,参数); Object value=method.invoke(obj,参数); //私有方法 method.setAccessiable(true); Field:字段(属性) Class<?> clazz=Person.class; clazz

c++中lambda表达式的用法

試著忘記壹切 提交于 2019-11-28 05:43:26
#include <iostream> using namespace std; int main(){ int a = 10; auto func1 = [=](int b){return a +b+ 1;}; auto func2 = [&](int b,int c){return a+b+c + 1;}; cout << func1(1) << endl; cout << func2(1,2) << endl; a++; cout << func1(1) << endl; cout << func2(1,2) << endl; return 0; } 原文: https://blog.csdn.net/iloveyousunna/article/details/78532398 来源: https://www.cnblogs.com/nanqiang/p/11394927.html

类型和程序设计语言

我的梦境 提交于 2019-11-27 19:10:20
编程语言的类型系统为何如此重要? - 知乎 https://www.zhihu.com/question/23434097/answer/43057230 《类型和程序设计语言》.pdf - 免费高速下载 - 皮皮盘-收入最高的网盘 当前标签:简单易懂的程序语言入门小册子 当前标签:简单易懂的程序语言入门小册子 简单易懂的程序语言入门小册子(9):环境,引入环境 古霜卡比 2014-05-16 05:46 阅读:793 评论:2 简单易懂的程序语言入门小册子(8):基于文本替换的解释器,小结 古霜卡比 2014-05-08 08:55 阅读:883 评论:5 简单易懂的程序语言入门小册子(7):基于文本替换的解释器,加入continuation,重构解释器 古霜卡比 2014-05-03 10:27 阅读:643 评论:0 简单易懂的程序语言入门小册子(1.5):基于文本替换的解释器,递归定义与lambda演算的一些额外说明 古霜卡比 2014-05-02 11:41 阅读:753 评论:0 简单易懂的程序语言入门小册子(6):基于文本替换的解释器,引入continuation 古霜卡比 2014-04-28 11:18 阅读:926 评论:2 简单易懂的程序语言入门小册子(5):基于文本替换的解释器,递归,不动点,fix表达式,letrec表达式 古霜卡比 2014-04-23

Lambda表达式动态组装查询条件

流过昼夜 提交于 2019-11-27 14:00:55
最近比较闲,年底了,项目也进入尾声;每天就是维护一下系统,整理整理文档,整理知识点,这样才觉得有点意思; 问题 在使用Linq的where()查询的时候,不知道大家是怎么动态组装多个查询条件时,是怎么做的?我是这样做的,请看下面代码; 方法一: 1.1 Expression的扩展类 public static class PredicateExtensions { public static Expression<Func<T, bool>> True<T>() { return f => true; } public static Expression<Func<T, bool>> False<T>() { return f => false; } public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> expression1, Expression<Func<T, bool>> expression2) { var invokedExpression = Expression.Invoke(expression2, expression1.Parameters.Cast<Expression>()); return Expression.Lambda<Func<T, bool>>

java8 lambda表达式

允我心安 提交于 2019-11-27 13:28:38
参考博客: https://www.520mwx.com/view/44313 自己玩的代码: Student实体类 public class Student { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Student() { super(); // TODO Auto-generated constructor stub } public Student(String name, int age) { super(); this.name = name; this.age = age; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + "]"; } public void eat() { System.out.println("eat food..."

lambda表达式,bind函数

有些话、适合烂在心里 提交于 2019-11-27 08:23:36
什么是lambda表达式? :一块代码单元,可以理解为未命名的内联函数。 形式:【捕获列表】(参数列表)->返回类型 { 表达式体 } 例子: [ ](const string& s1, const string& s2){ return s1.size() < s2.size()}; 可以省略参数列表和返回类型,但是必须包括捕获列表和表达式体 auto f = [ ] { return 100}; cout << f(); //输出100 捕获列表: 只有捕获列表中捕获一个所在函数的局部变量,才能够在表达式体中使用。 显示捕获 值捕获 :直接写变量的名字:例如:[size] { } 引用捕获 : 例如:[&size] { } 隐式捕获:让编译器根据表达式体中的代码来推断我们需要哪些变量。=表示值捕获,&表示引用捕获 比如:[=] {}; {&} {}; 也可以混合使用显示捕获和隐士捕获,此时,捕获列表的第一个必须是&或者=,并且显示和隐式必须使用不同的捕获方式,比如:隐式捕获使用了=,后面显示捕获必须使用引用捕获(&变量名)。[=, &size] { } 如何改变一个别捕获的变量? 在参数列表尾部添加mutable关键字。例如:auto f = v mutable {retuern ++v;} **bind()函数** 头文件:#include <functional> 形式:

Lambda表达式 compareTo() 方法

℡╲_俬逩灬. 提交于 2019-11-27 07:50:49
遍历数组 // 创建一个集合 //forEach的使用 List<String> wordList= Lists.newArrayList(); wordList.add("a"); wordList.add("z"); wordList.add("c"); wordList.forEach(word->System.out.println(word));//相当于for循坏 排序 List<Integer> List= Lists.newArrayList(); List.add(5); List.add(6); List.add(9); List.add(2); //用 Lambda 排序 List.sort((Integer i,Integer b) ->{ return i.compareTo(b); }); System.out.println(List); 结果如下 结果如下: 来源: https://www.cnblogs.com/JonaLin/p/11351946.html

BIM工程信息管理系统-EF实体框架数据操作基类

梦想的初衷 提交于 2019-11-27 05:07:57
EF实体框架数据操作基类主要是规范增、改、查、分页、Lambda表达式条件处理,以及异步操作等特性,这样能够尽可能的符合基类这个特殊类的定义,实现功能接口的最大化重用和统一。 1、程序代码 /// <summary> /// MSSQL数据库 数据层的父类 /// </summary> /// <typeparam name="T"></typeparam> public class BaseDAL<T> where T : class { //EF上下文 private readonly DbContext _db; #region 00 单例模式 private static BaseDAL<T> _mInstance = null; private static object obj = new object(); public BaseDAL(DbContext db) { _db = db; } public static BaseDAL<T> ManagerContent(DbContext dbContext) { if (_mInstance == null) { lock (obj) { _mInstance = new BaseDAL<T>(dbContext); } } return _mInstance; } #endregion 00 单例模式

入门lambda表达式教程 2

拈花ヽ惹草 提交于 2019-11-27 04:57:18
首先定义一下准备工作 package com . chaojilaji . work . statedemo . lambdademo2 ; import lombok . Getter ; import lombok . Setter ; import java . time . LocalDate ; import java . util . List ; import java . util . Objects ; @Getter @Setter public class Book { private double money ; private String bookName ; private String title ; private List < String > auther ; private String topic ; private int pageCount ; private LocalDate pubDate ; private double height ; public Book ( Builder builder ) { this . auther = builder . auther ; this . bookName = builder . bookName ; this . height = builder . height ; this

C#十种语法糖

我只是一个虾纸丫 提交于 2019-11-27 04:43:07
原文: C#十种语法糖 语法糖 指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。 需要声明的是“语法糖”这个词绝非贬义词,它可以给我们带来方便,是一种便捷的写法,编译器会帮我们做转换,而且可以提高开发编码的效率,在性能上也不会带来损失。 一、自动属性 以前:手写私有变量+公有属性 现在:声明空属性,编译器自动生成对应私有成员字段。 写法:输入prop ,连续按两次tab键,自动生成属性。 1 /// <summary> 2 /// 自动属性 3 /// </summary> 4 public string Name { get; set; } 5 6 /// <summary> 7 /// 传统属性写法 8 /// </summary> 9 private string _LoginName; 10 11 public string LoginName 12 { 13 get { return _LoginName; } 14 set { _LoginName = value; } 15 } 二、隐式类型(var) var定义变量有以下四个特点: 程序员在声明变量时可以不指定类型,由编译器根据值来指定类型 1、必须在定义时初始化 2、一旦初始化完成