mar*_*und 6 java function-composition java-8
有一个默认的方法andThen()在BiFunction接口(java.util.function包).
default <V> BiFunction<T,U,V> andThen(Function<? super R,? extends V> after)
文件说:
返回首先将此函数应用于其输入的组合函数,然后将after函数应用于结果.如果对任一函数的求值抛出异常,则将其转发给组合函数的调用者.
理解解释的含义并不容易让人困惑.根据我的理解,andThen()调用默认方法时会返回一个组合函数.在类型上调用此组合函数,T并U返回该类型V.最后,有after关于类型R和调用的函数和函数V.
这种方法有什么需要?它如何真正适合图片?
理解解释的含义并不容易。
为了尽可能简单地解释它,该方法andThen返回一个函数,该函数首先将给定函数应用于输入,然后将另一个函数应用于该应用程序的结果。
假设我们有两个函数f和g,函数f执行一些逻辑,函数g执行一些其他类型的逻辑,因此当您编写时,f.andThen(g)这本质上意味着g(f(x))我们首先应用作为参数给出的函数f(x),然后将该函数应用于g结果。
例子:
BiFunction<Integer, Integer, Integer> f = Math::addExact;
Function<Integer, Integer> g = e -> e * 2;
System.out.println(f.andThen(g).apply(10,10)); // 40
Run Code Online (Sandbox Code Playgroud)
我们首先调用 function f(10, 10),然后取出 is 的结果20,将其传递给函数g(20)并执行乘以20,从而2产生40。
老实说,调用函数的语法Java并不是最好的,所以我可以理解,当有人第一次看到这个时,它可能很难掌握,并且随着你编写函数的次数越来越多,例如在C#一个可以简单地做g(f(10, 10))那些肉眼可见的更容易遵循、阅读和理解的事情。
这个方法有什么必要呢?它实际上如何融入图片中?
根据我的经验,我组成如上所示的函数的情况并不常见,但我可以想象的一个典型场景是,如果您有各种实用程序方法来执行某些逻辑,其中一个函数的结果进一步传递给其他函数进行处理,其中在这种情况下,您可以使用函数组合通过组合实用方法来创建各种转换管道。
| 归档时间: |
|
| 查看次数: |
595 次 |
| 最近记录: |