gpt4 book ai didi

f# - F# 中的不可变值

转载 作者:行者123 更新时间:2023-12-04 22:25:40 26 4
gpt4 key购买 nike

我刚刚开始使用 F# 并且有一个基本问题。

这是代码:

let rec forLoop body times =
if times <= 0 then
()
else
body()
forLoop body (times - 1)

我不明白当你定义一个变量时它是一个值和不可变的概念。在这里,值正在改变以便循环。这与 C# 中的变量有何不同?

最佳答案

它没有改变。你使用递归。 变量保持不变,但减一并传递给函数。在这种情况下,功能是相同的。

堆栈看起来像

forLoop body 0
|
forLoop body 1
|
forLoop body 2

关于f# - F# 中的不可变值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2623971/

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