gpt4 book ai didi

F#,赋值运算符与集合运算符

转载 作者:行者123 更新时间:2023-12-01 16:08:52 24 4
gpt4 key购买 nike

我从 F# 开始,一些代码结构让我很奇怪。例如:

我有下一个代码:

let mutable s = 10
s <- 1 + s
printf "%i" s

从数学角度来看,一切都很清楚。我将“s”标记为可变并将新值分配给“s”。结果是 11。

让我试试其他部分的代码:

let mutable s = 10
s = 1 + s
printf "%i" s

此代码有效。但是我看到 s = 1 + s 从数学方面来说有点奇怪。执行结果为 10。

我的问题,最后一个示例中发生了什么?为什么我没有收到错误消息? s = 1 + s 是否被忽略?为什么?我在输出中没有收到任何错误。

最佳答案

代码

s=1+s

将不修改s——等效的C#是

s==1+s

只返回 false

事实上,编译器应该在该行上发出警告,说明某个值未被使用。

= 运算符只是进行相等性检查 - 它分配任何值。

关于F#,赋值运算符与集合运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15924501/

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