gpt4 book ai didi

java - 纯函数可以改变输入值吗?

转载 作者:行者123 更新时间:2023-12-01 17:49:30 25 4
gpt4 key购买 nike

我正在学习函数式编程,刚刚阅读了有关纯函数的内容。

我的问题是:纯函数可以改变它的参数吗?

这个函数是纯函数吗?

int a(Payment payment){
payment.setValue(payment.getValue() - 1);
return payment.getValue() * 10;
}

最佳答案

这里有两件事:

  1. 纯函数是一种返回值仅基于其输入参数的函数,并且调用该函数没有副作用

  2. 您粘贴的 Kotlin 代码片段无法编译(请参阅 https://ideone.com/fli05T )。编译器显示val cannot be reassigned 。这是因为在 Kotlin 中,函数参数是不可变的。

理论上,如果可以像您编写的那样定义这样的函数,那么根据 (1) 的定义,它将是纯粹的,假设参数是按值传递的(在函数内更改它们不会改变它们)从函数外部看)。

关于java - 纯函数可以改变输入值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51956493/

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