lambda表达式,在《Java8实战》中,将Lambda的理解为简洁地可传递的匿名函数,这里重要强调简洁,可传递,匿名,函数,从字面可以清楚的了解lambda是什么,但是需要了解透彻liambda的实质,还需要思考为什么引用他?
任何程序语言,实现目标功能所需的代码越少,说明其对低层的封装越多,这里的低层并不仅仅是指硬件,机器语言,而是指将原有的东西进行封装,实现更少代码,更精简的api;
很多Java学习者,认为Lambda其主要的好处就是简化代码,实现更好的封装,那就没有理解到作者的重点,简化代码只是相对的,真正的意图不是简化代码,而是行为参数化,实现行为的方便替换;
对于同一类型的问题,输入相同,判断条件不同,得到的结果也不同,传统的方式是,我们需要重写好几个不同判断条件的方法,当然会造成代码的冗余,同时,lamdba将判断条件(行为的实现)和数据进行分离,同时降低了数据之间的耦合, {今天学习C++中的封装,封装实现了数据隐藏(private,protect修饰的成员),但是封装同时将接口和方法实现进行分离,使使用者不用关心方法的具体细节实现,只需要了解有什么功能即可} 这里将行为的实现和数据分离,只需提供实现的方法,很大的提升了函数的灵活性。
注意: lambda表达式相当于一个接口的实现类,其返回值的作用是什么了?
lambda表达式就是作为参数传递给需要这个接口实现类的方法,其lambda的返回值的作用就是用来判断其行为的程度(true或false,是否满足某个条件,),或者返回某个有用的值,其返回值是用来作为程序其他判断的标准,对于没有返回值的Lambda其目的就是执行一个行为。