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

参考资料:https://blog.csdn.net/Gaoju12138/article/details/109546832?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161588713616780266270616%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161588713616780266270616&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-2-109546832.first_rank_v2_pc_rank_v29&utm_term=javaLambda%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%97%A0%E8%BF%94%E5%9B%9E%E5%80%BC%EF%BC%8C%E4%BB%80%E4%B9%88%E6%97%B6%E5%80%99%E5%A4%A7%E6%8B%AC%E5%8F%B7%E5%8F%AF%E4%BB%A5%E7%9C%81%E7%95%A5    (Java Lambda表达式,有参数的使用,有参数有返回值的使用,Lambda表达式的省略格式,使用前提。)

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

  1. Lambda01 编程范式、lambda表达式与匿名内部类、函数式接口、lambda表达式的写法

    1 编程范式 主要的编程范式有三种:命令式编程,声明式编程和函数式编程. 1.1 命令式编程 关注计算机执行的步骤,就是告诉计算机先做什么后做什么 1.2 声明式编程 表达程序的执行逻辑,就是告诉计算 ...

  2. 初探Lambda表达式/Java多核编程【4】Lambda变量捕获

    这周开学,上了两天感觉课好多,学校现在还停水,宿舍网络也还没通,简直爆炸,感觉能静下心看书的时间越来越少了...寒假还有些看过书之后的存货,现在写一点发出来.加上假期两个月左右都过去了书才看了1/7都 ...

  3. C++11特性——变量部分(using类型别名、constexpr常量表达式、auto类型推断、nullptr空指针等)

    #include <iostream> using namespace std; int main() { using cullptr = const unsigned long long ...

  4. 初探Lambda表达式/Java多核编程【3】Lambda语法与作用域

    接上一篇:初探Lambda表达式/Java多核编程[2]并行与组合行为 本节是第二章开篇,前一章已经浅显地将所有新概念点到,书中剩下的部分将对这些概念做一个基础知识的补充与深入探讨实践. 本章将介绍L ...

  5. java语言中的匿名类与lambda表达式介绍与总结 (Anonymous Classes and Lambda Expressions)

    2017/6/30 转载写明出处:http://www.cnblogs.com/daren-lin/p/anonymous-classes-and-lambda-expressions-in-java ...

  6. [二] java8 函数式接口详解 函数接口详解 lambda表达式 匿名函数 方法引用使用含义 函数式接口实例 如何定义函数式接口

    函数式接口详细定义 package java.lang; import java.lang.annotation.*; /** * An informative annotation type use ...

  7. java8函数式接口详解、函数接口详解、lambda表达式匿名函数、方法引用使用含义、函数式接口实例、如何定义函数式接口

    函数式接口详细定义 函数式接口只有一个抽象方法 由于default方法有一个实现,所以他们不是抽象的. 如果一个接口定义了一个抽象方法,而他恰好覆盖了Object的public方法,仍旧不算做接口的抽 ...

  8. Java 8 Lambda表达式探险

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

  9. Java 8 Lambda表达式

    Java 8 Lambda表达式探险 http://www.cnblogs.com/feichexia/archive/2012/11/15/Java8_LambdaExpression.html 为 ...

随机推荐

  1. 操作系统 part4

    1.操作系统的启动 CPU加电后,执行BIOS(基本IO处理系统).BIOS会进行硬件的自检和初始化,然后把加载程序(BootLoader)从磁盘上的引导扇区中加载到指定位置0x7c00.然后控制权交 ...

  2. Splunk监控软件操作

    一.  Splunk公司与产品 美国Splunk公司,成立于2004年,2012年纳斯达克上市,第一家大数据上市公司,荣获众多奖项和殊荣.总部位于美国旧金山,伦敦为国际总部,香港设有亚太支持中心,上海 ...

  3. 痞子衡嵌入式:超级下载算法(RT-UFL)开发笔记(3) - 统一FlexSPI驱动访问

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是超级下载算法开发笔记(3)之统一FlexSPI驱动访问. 文接上篇 <超级下载算法(RT-UFL)开发笔记(2) - 识别当前i. ...

  4. u-boot 移植 --->6、引导Linux启动测试

    在引导Linux开机之前需要先清楚Linux启动的必要或者说是先决条件,这里就是提到了u-boot的作用了引用百度云---主要用于嵌入式系统的引导加载,其实在我调试下来总结一下就是初始化硬件这里的硬件 ...

  5. O&#178; & O₂

    O² & O₂ special symbol O² & O₂ HTML HTML subscript and superscript Tags HTML 下标元素 HTML 上标元素 ...

  6. 智能货柜 & 技术原理 (动态视觉识别 + 重力感应)

    智能货柜 & 技术原理 (动态视觉识别 + 重力感应) 智能货柜 拥有智能化.精细化运营模式的智能货柜成为代替无人货架继前进的方式. 相比无人货架来说,智能货柜的技术门槛更高,拥有 RFID. ...

  7. flutter 长按图片保存到手机

    main.dart import 'dart:io'; import 'package:flutter/material.dart'; import 'package:http/http.dart' ...

  8. java中synchronized与Lock的异同

    本文转载自java中synchronized与Lock的异同 前言 synchronized和Lock通过互斥保障原子性,能够保护共享数据以实现线程安全,其作用包括保障原子性.可见性.有序性 常见问题 ...

  9. Ubuntu 下安装Anaconda + 显卡驱动 + CUDA + CUDNN + 离线安装环境

    写来给自己备忘,并不是什么教程- .- 下载安装包 Anaconda:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 显卡驱动:https ...

  10. 这一篇TCP总结请收下

    前言 很高兴遇见你~ TCP这些东西,基本每个程序猿都或多或少是掌握的了.虽然感觉在实际开发中没有什么用武之处,但,面试他要问啊 而最近大家伙过完年,也都在准备春招,我也一样.阅读了一些okHttp源 ...