Lambda 表达式(使用前提、“类型推断”、作用、优缺点、Lambda还能省略的情况)

简介: Lambda 表达式(使用前提、“类型推断”、作用、优缺点、Lambda还能省略的情况)

Lambda 表达式(使用前提、“类型推断”、作用、优缺点、Lambda还能省略的情况)


 

1.Lambda使用前提:

(1)使用Lambda必须有接口,且接口只有一个抽象方法(即函数式接口)。

(2)Lambda必须可以“上下文推断”(就是依据语境推断出参数类型,这也是Lambda的一个优点,使得参数类型得以省略,更加简洁)

 

2.Lambda中的“类型推断”—参数类型可以省略原因

Lambda 表达式中无需指定类型,程序依然可以编译,Lambda 表达式的类型依赖于上下文环境,是由编译器推断出来的。这就是所谓的 “类型推断”。

 

3.Lambda(把匿名内部类当作参数) 表达式作用:函数式编程、替换匿名内部类(利用lambda实现函数式中的函数)。

 

4.Lambda表达式优缺点

优点:简洁,易于计算,尤其适用于遍历结果,循环计算数值或者赋值时。

缺点:(1)不容易debug模式调试;

   (2)在lambda语句中强制类型转换不方便;

   (3)不能再foreach中修改forEach外面的值;

      (4)如果不并行计算,很多时候计算速度不如传统for循环.

 

 

5.Lambda还可以省略,变得更加简洁的情况:

可以省略的内容:

1、(参数列表):括号中的参数列表的数据类型,可以省略不写(编译器自己会根据上下文语境推断出类型的)

2、(参数列表):括号中的参数只有一个()可以省略

3、(参数列表)Lambda体只有一句语句({ 只有一句语句 }),无论是否有返回值,都可以省略({ }, return , 分号 )!!!注意:在省略{ }的同时要(return)和分号一起省略

目录
相关文章
|
11月前
|
C#
C#学习相关系列之数据类型类的三大特性(二)
C#学习相关系列之数据类型类的三大特性(二)
|
5月前
类的实例化过程在ES6中是如何优化的?
类的实例化过程在ES6中是如何优化的?
ES6学习(3)模板字符串、简化对象和函数写法
ES6学习(3)模板字符串、简化对象和函数写法
|
9月前
ES6 扩展运算符 ...【详解】(含使用场景、实战技巧和范例、实现原理、错误用法)
ES6 扩展运算符 ...【详解】(含使用场景、实战技巧和范例、实现原理、错误用法)
78 5
|
11月前
|
缓存 监控 Java
Hysterix的概念、作用、使用方法
Hysterix的概念、作用、使用方法
99 0
|
11月前
|
Java
Java接口的作用、特点以及常见用法
【2月更文挑战第7天】
169 0
Java接口的作用、特点以及常见用法
|
11月前
|
算法 编译器 C++
【C++ 函数 基本教程 第二篇 】深度剖析C++:作用域与函数查找机制
【C++ 函数 基本教程 第二篇 】深度剖析C++:作用域与函数查找机制
92 0
|
11月前
|
Java
基本概念【算术、 关系、逻辑、位、字符串、条件、优先级等运算符】(三)-全面详解(学习总结---从入门到深化)
基本概念【算术、 关系、逻辑、位、字符串、条件、优先级等运算符】(三)-全面详解(学习总结---从入门到深化)
89 0
|
11月前
|
SQL Arthas Java
OGNL表达式学习笔记(一) 基本特性与基本概念
OGNL表达式学习笔记(一) 基本特性与基本概念
|
11月前
|
JavaScript
连等表达式的核心原理
连等表达式的核心原理
115 0