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)和分号一起省略

目录
相关文章
Lambda 语法糖《方法引用》
Lambda 语法糖《方法引用》
|
6月前
|
JavaScript 前端开发 Java
23、匿名类的排序、Lambda 表达式、方法引用
23、匿名类的排序、Lambda 表达式、方法引用
41 0
|
6月前
|
开发框架 .NET 编译器
C# 9.0中的目标类型新表达式:类型推断的又一进步
【1月更文挑战第16天】C# 9.0引入了目标类型新表达式,这是类型推断功能的一个重要扩展。通过目标类型新表达式,开发者在创建对象时可以省略类型名称,编译器会根据上下文自动推断所需类型。这一特性不仅简化了代码编写,还提高了代码的可读性和维护性。本文将详细介绍目标类型新表达式的语法、使用场景及其对C#编程的影响。
|
存储 Java 开发者
1.1 Lambda表达式的基础:Lambda表达式的定义与语法
1.1 Lambda表达式的基础:Lambda表达式的定义与语法
119 0
|
Java 编译器 API
4.3 Lambda表达式的性能与限制:在某些情况下避免使用Lambda表达
4.3 Lambda表达式的性能与限制:在某些情况下避免使用Lambda表达
1310 0
|
Java 编译器
[Java基础]基本概念(下)运算符,表达式和语句,分支,循环,方法,变量的作用域,递归调用
在上一篇文章[Java基础]基本概念(上)(标识符,关键字,基本数据类型)_小王师傅66的博客-CSDN博客中,我们学习了Java基础基本概念中的标识符,关键字,基本数据类型。这篇文章,我们将学习:运算符,表达式和语句,分支,循环,方法,变量的作用域,递归调用。
|
编译器 C++
C++中Lambda函数的含义及其本质
C++中Lambda函数的含义及其本质
406 0
C++中Lambda函数的含义及其本质
|
存储 算法 编译器
【C++】lambda 表达式 | 包装器
【C++】lambda 表达式 | 包装器
【C++】lambda 表达式 | 包装器
|
JavaScript 前端开发 Java
第23篇:匿名类的排序、Lambda 表达式、方法引用
🔖 Lambda Expression 是 Java8 开始才有的语法 🔖 函数式接口(Functional Interface):只包含1个抽象方法的接口(可以包含多个默认方法和静态方法) 📕 可以在接口上加上@FunctionalInterface注解,表示它是一个函数式接口 🔖 当匿名类实现的是函数式接口的时候,可以使用 Lambda 表达式简化代码的书写(但是匿名类和 Lambda 在作用域上还是有点区别的)
227 0