gpt4 book ai didi

Java 8 消费者和副作用

转载 作者:太空狗 更新时间:2023-10-29 22:45:03 25 4
gpt4 key购买 nike

我是 Java 8 的新手,我看到了 Consumer java doc,它说,“Consumer is expected to operate via side-effects”。有人能解释一下为什么这么说吗?

最佳答案

消费者有带有以下签名的方法accept

void accept(T t);

该方法将 t 作为输入并且不返回任何内容 (void),因此您不能从中返回任何内容并用它返回的值替换方法调用。

副作用的一个例子是打印语句,

list.stream.foreach(System.out::println);

foreach 将消费者作为参数。如果您考虑一下,您可以使用这种方法做的唯一有用的事情就是改变世界(即,改变状态)。

与之相反的是 pure function ,一个不改变任何状态的函数,它接受一个输入,并返回一些东西,例如

Function<Integer,Integer> fn = x -> x*x;

fn 这里没有任何副作用(它不改变任何东西),它接收一个整数并平静地返回它的平方。

关于Java 8 消费者和副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37288194/

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