前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Lambda & Method Reference

Lambda & Method Reference

原创
作者头像
泽霖
发布于 2023-11-14 15:03:55
发布于 2023-11-14 15:03:55
1970
举报
文章被收录于专栏:分享技术分享技术

首先理解一个词,语法糖。所谓语法糖就是英国计算科学家 Peter John Landin 发明的术语,其意义为在计算机的语言中添加某种语法,这种语法对于语言的功能是没有影响的,但更方便程序员的使用。而语法糖的意义就是让程序更加的简洁和有更高的可读性。

Lambda 表达式的本质上就是一个语法糖,由编译器推断并帮助程序员把其转换包装为常规的代码,通过这样来让程序员写更少的代码来实现同样的功能,但其是有双面性的,一方面他增加了可读性也更简洁,但是如果滥用的话就会导致代码虽然简洁但是理解起来需要额外花费精力,让维护变得困难。所以一般来说,超过三行的逻辑就不建议使用 Lambda 表达式。

Lambda 是 Java SE 8中引入的一个非常重要的特性,其允许程序员通过表达式来替换功能接口,Lambda 表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的种主体。于此同时 Lambda 还对 Collection 进行了增强,其添加了两个对集合数据进行批量操作的包 java.util.function 和 java.util.stream。 Stream 就和 iterator 差不多,但是会多很多附加功能,更强大便捷。

语法

基本语法有两种格式:

(parameters) -> expression

或 (parameters) ->{ statements; }

从 for 循环入手,之前的形式就不说了,来看看 Lambda 能做些什么

代码语言:txt
AI代码解释
复制
// 就比如说,循环输出一些东西
allData.forEach((single) -> System.out.print(single))
// 或 使用双冒号操作
allData.forEach(System.out::println);

双冒号操作符(double colon operator):其在 Java 8 中被用作方法引用(method reference), 方法引用是与 Lambda 表达式相关的一个重要特性,它提供了一种不执行方法的方法。

Method References You use lambda expressions to create anonymous methods. Sometimes, however, a lambda expression does nothing but call an existing method. In those cases, it’s often clearer to refer to the existing method by name. Method references enable you to do this; they are compact, easy-to-read lambda expressions for methods that already have a name.

然后下面是一些 Java 8 中的方法引用的语法:

  • 静态方法引用(static method)语法:classname::methodname 例如:Person::getAge
  • 对象的实例方法引用语法:instancename::methodname 例如:System.out::println
  • 对象的超类方法引用语法: super::methodname
  • 类构造器引用语法: classname::new 例如:ArrayList::new
  • 数组构造器引用语法: typename[]::new 例如: String[]:new

以上只是从最开始 Lambda 讲至 Java 8 的方法引用特性。下一篇会进行 Lambda 中集合部分的具体使用。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
Git LFS(Large File Storage)
Git Large File Storage (LFS),是GitHub推出的基于Git的扩展,专门用来存储大文件。
donghui
2019/04/19
1.3K0
Git LFS(Large File Storage)
使用 git push 上传超过100MB文件报错 remote: error: this exceeds GitHub‘s file size limit of 100.00 MB
使用 git push 将一个 173.86 MB 的文件推送到 GitHub 时出现如下报错
Gnep@97
2023/08/10
3.9K0
使用 git push 上传超过100MB文件报错 remote: error: this exceeds GitHub‘s file size limit of 100.00 MB
使用 Git 存储大文件
当在 Git 仓库中存储大的二进制文件时(>50MB),比如 R 里面的 RData 或 RDS 文件,默认的 git 提交方式无法获取二进制文件的修改,会让仓库越来越大。在这种情况下,将仓库 push 到远程会出现警告。
王诗翔呀
2022/01/21
3.1K0
使用 Git 存储大文件
Git 大文件存储 lfs
Git LFS(Large File Storage, 大文件存储)是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持。
为为为什么
2022/08/09
2.3K0
Git 仓库瘦身与 LFS 大文件存储
熟悉 Git 的小伙伴应该都知道随着 Git 仓库维护的时间越来越久,追踪的文件越来越多,git 存储的 objects 数量会极其庞大,每次从远程仓库 git clone 的时候都会墨迹很久。如果我们不小心 git add 了一个体积很大的文件,且 git push 到了远程仓库,那么我们 git clone 的时候也会很慢。
Cloud-Cloudys
2023/10/21
1K0
Git 仓库瘦身与 LFS 大文件存储
git上传文件到Gitee报错“error: failed to push some refs to https://gitee.com/xxxx”
我要将一个 4.27 GB 的文件上传到 Gitee 上,但是出现了下面这样的报错 error: failed to push some refs to 'https://gitee.com/xxxx/centos.git 因此记录一下解决报错的方法。
Gnep@97
2023/08/10
1.2K0
git上传文件到Gitee报错“error: failed to push some refs to https://gitee.com/xxxx”
如何存储 Git 大文件?
作者:terryshchen,腾讯 IEG 应用开发工程师 本文主要讲解在 Git 仓库中如何管理大的二进制文件,详细介绍了什么是 Git LFS,Git LFS 是如何工作的,以及如何使用 Git LFS。 本文翻译自 Atlassian 官方介绍 Git LFS 的文章,Atlassian 是 Git LFS 的主要开发者之一,这篇介绍 Git LFS 的文章比较权威,讲的也很详细。原文地址: https://www.atlassian.com/git/tutorials/git-lfs 本
腾讯技术工程官方号
2020/06/09
3.9K0
GitLab 之 Git LFS 大文件存储的配置
哎_小羊
2018/01/02
12K0
GitLab 之 Git LFS 大文件存储的配置
Git LFS: 简单高效的大文件版本控制
可以看到,git限制上传大小是100MB,超过的话就会报错,找了一圈,学到了一个新东西git LFS,这里记录一下。
用户3578099
2024/01/10
1.3K0
Git LFS: 简单高效的大文件版本控制
Github又悄悄升级了,这次的变化是大文件的存储方式
github是大家常用的代码管理工具,也被戏称为世界上最大的程序员交友网站,它的每次升级都会影响很多用户。在我的个人github网站上,之前在做JAVA NIO demo的时候上传了一个自制的大文件,最近对这个项目进行了一些修改,但是却上传不上github网站了,查看报错的原因,就是说项目中有一个大文件无法上传,现在github提供了一个叫做Git Large File Storage (LFS)的工具来替换github中的大文件。
程序那些事
2022/03/18
1.1K0
化繁为简的企业级 Git 管理实战(五):二进制大文件的版本控制
二进制大文件的版本控制是 Git 的一个弱项,也是很多团队难免会遇到的一个让人头痛的问题。本文将介绍我们使用 Git 进行二进制文件的版本控制的多种方案,以及相关的踩坑之旅。 毫无疑问,Git 非常适合用于代码文件的版本控制。对于纯代码仓库,由于每次实际提交都是增量内容,即使仓库经历了几十次提交,整个仓库的大小往往都不会大幅增加。 而对于存在二进制文件的仓库,情况就变了:Git 并不能很好地支持二进制文件的增量提交,每次更新一个二进制文件,就相当于把这份文件的完整内容再往仓库里扔。久而久之,这个仓库就会变得
HaHack
2018/07/03
2.1K0
Unity 3D 开发《王者荣耀》:Hello WorldUnity 安装《王者荣耀》 App Store 英文名称是 《Arena of Valor》GitHub for Unity:https
Unity 安装 ---- Unity 官方网站:https://unity3d.com 点击右上角的 获取Unity 系统要求 OS: Windows 7 SP1+, 8, 10, 64-bit versions only; Mac OS X 10.9+. GPU:有DX9(着色器模型2.0)功能的显卡。2004年以来的产品应该都可以。 版本 Unity 2018.1.1f1: https://unity3d.com/cn/unity/whatsnew/unity-2018.1.1 默认安装即可。 登录
iOSDevLog
2018/06/21
1.3K0
【Git】Git 完全指南:从入门到精通
Git 是现代软件开发中最重要的版本控制工具之一,它帮助开发者高效地管理项目,支持分布式协作和版本控制。无论是个人项目还是团队开发,Git 都能提供强大的功能来跟踪、管理代码变更,并保障项目的稳定性与可持续发展。本篇文章从基础命令讲起,逐步深入,帮助你全面了解并掌握 Git,最终达到精通。
LuckiBit
2024/12/11
5.5K0
【Git】Git 完全指南:从入门到精通
Git入门学习到进阶3
但是在GitHub上,利用Git极其强大的克隆和分支功能,广大人民群众真正可以第一次自由参与各种开源项目了。
全栈工程师修炼指南
2022/09/28
5580
Git入门学习到进阶3
听说你想要部署 Octopress?满足你
Octopress 是一个面向开发者的博客系统,广受程序员的喜爱。既然大家有需求,那么 Octopress 也要安排上~
腾讯云开发TCB
2020/06/03
1.1K0
Git最全系列教程(四)
到目前为止,你应该已经学会了使用 Git 来完成日常工作。然而,如果想与他人合作,还需要一个远程的 Git 仓库。尽管技术上可以从个人的仓库里推送和拉取修改内容,但我们不鼓励这样做,因为一不留心就很容易弄混其他人的进度。另外,你也一定希望合作者们即使在自己不开机的时候也能从仓库获取数据 — 拥有一个更稳定的公共仓库十分有用。因此,更好的合作方式是建立一个大家都可以访问的共享仓库,从那里推送和拉取数据。我们将把这个仓库称为 "Git 服务器";代理一个 Git 仓库只需要花费很少的资源,几乎从不需要整个服务器来支持它的运行。
兔云小新LM
2019/07/24
1.6K0
Git最全系列教程(四)
开源软件的商业模式
Business models for open-source software / 开源软件的商业模式
开源社
2022/04/11
2.4K0
计算机视觉学术速递[8.17]
【1】 Flying Guide Dog: Walkable Path Discovery for the Visually Impaired Utilizing Drones and Transformer-based Semantic Segmentation 标题:飞行导盲犬:基于无人机和Transformer的视障人士可行走路径发现 链接:https://arxiv.org/abs/2108.07007
公众号-arXiv每日学术速递
2021/08/24
2K0
人工智能学术速递[12.6]
【1】 Coupling Vision and Proprioception for Navigation of Legged Robots 标题:腿式机器人导航中的视觉与视觉耦合 链接:https://arxiv.org/abs/2112.02094
公众号-arXiv每日学术速递
2021/12/09
1.1K0
一种绝对提高开发水平的方法
如果做了多年开发的你发现自己的水平一直上不去,你可能要提高自己的英文水平了,英语就是你技术的瓶颈,对有些人可能是硬伤。
张果
2018/07/31
9.3K2
一种绝对提高开发水平的方法
推荐阅读
相关推荐
Git LFS(Large File Storage)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档