#如何理解lambda表达式只是一个表达式,因此它的主体只能封装有限的逻辑,它在python和Java中均有使用;
Thread t = new Thread(() -> { for (int i = 0; i < 10; i++) { System.out.println(2 + ":" + i); } }); t.start();
收起
最主要的原因是lambda的主体是一个表达式,而不是一个代码块。
也就是lambda不能和def一样,符合条件的参数都能传进去处理,lambda只能在已知的数据中对其进行相同表达式处理
望采纳,谢谢
lambda表达式也有参数啊,在java8中就提到lambda表达式可以有参数,只不过参数不用指定数据类型,由Java解释器来确定其类型;所以你说的lambda只能对已知的数据处理,它们通常指Java中的基本数据类型或者python中的数字类型吧;向自定义的对象类型不能处理吗?你说的表达式的功能有限,确实是如此;
可能是我的表述不清楚,我的意思是比如说有一个列表,我通过lambda对列表处理:每个数+1在这个场景中,先有这个数据,再有lambda表达式,也就是这个lambda表达式因列表改变的需求而生,列表就是lambda的参数,但是不能理解为lambda能够处理所有列表,只是说针对于这个特定的场景中适用
报告相同问题?
程序员都在用的中文IT技术交流社区
专业的中文 IT 技术社区,与千万技术人共成长
关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!