gpt4 book ai didi

java - 使用 compose() 而不是 lambda 表达式的原因是什么?

转载 作者:行者123 更新时间:2023-11-30 02:35:52 26 4
gpt4 key购买 nike

我正在比较 compose() 的使用默认方法及其等效的 lambda 表达式,但找不到任何选择前者的理由。

正如 here 所指出的,也许原因与代码表达能力或函数式编程有关。

但是,比较解决问题的两种方法How to do function composition?我只看到使用 compose() 而不是 lambda 表达式的缺点。

根据 accepted answer 使用 compose() 的第一种方法:

Function<Person, Address> personToAddress = Person::getAddress;
Function<Address, String> addressToCountry = Address::getCountry;
Function<Person, String> toCountry = addressToCountry.compose(personToAddress);

使用 lambda 表达式的第二种方法:

Function<Person, String> toCountry = p -> p.getAddress().getCountry();

为什么我更喜欢第二个?首先,它不太冗长。其次,它不需要显式辅助变量 personToAddressaddressToCountry

那么,有什么理由使用 compose() 而不是显式使用 lambda 呢?

最佳答案

一个原因是,如果您没有在同一段代码中创建一个或什至两个函数,而是从其他地方传入它们。然后,您可以编写一个在给定函数上调用 apply() 的 lambda,或者使用 compose(),这可能会更简洁。

关于java - 使用 compose() 而不是 lambda 表达式的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43092614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com