qq_37335168 2022-06-01 03:43 采纳率: 84%
浏览 19
已结题

lambda只能封装有限的逻辑

#如何理解lambda表达式只是一个表达式,因此它的主体只能封装有限的逻辑,它在python和Java中均有使用;

Thread t = new Thread(() -> {
      for (int i = 0; i < 10; i++) {
        System.out.println(2 + ":" + i);
      }
    });
t.start();


  • 写回答

1条回答 默认 最新

  • 不会长胖的斜杠 后端领域新星创作者 2022-06-01 03:53
    关注

    最主要的原因是lambda的主体是一个表达式,而不是一个代码块。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    不会长胖的斜杠 2022-06-01 03:55

    也就是lambda不能和def一样,符合条件的参数都能传进去处理,lambda只能在已知的数据中对其进行相同表达式处理

    望采纳,谢谢

    回复
    qq_37335168 回复 不会长胖的斜杠 2022-06-01 07:39

    lambda表达式也有参数啊,在java8中就提到lambda表达式可以有参数,只不过参数不用指定数据类型,由Java解释器来确定其类型;所以你说的lambda只能对已知的数据处理,它们通常指Java中的基本数据类型或者python中的数字类型吧;向自定义的对象类型不能处理吗?
    你说的表达式的功能有限,确实是如此;

    回复
    不会长胖的斜杠 回复 qq_37335168 2022-06-01 07:42

    可能是我的表述不清楚,我的意思是
    比如说有一个列表,我通过lambda对列表处理:每个数+1
    在这个场景中,先有这个数据,再有lambda表达式,也就是这个lambda表达式因列表改变的需求而生,列表就是lambda的参数,但是不能理解为lambda能够处理所有列表,只是说针对于这个特定的场景中适用

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 6月1日
  • 创建了问题 6月1日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部