【发布时间】:2017-01-31 08:27:00
【问题描述】:
我被告知,默认情况下,数据在 F# 中是不可变的。
当我们为某个变量重新赋值时,真正发生的是它重新绑定了变量的值,但设置一个新值是另一回事。
重新绑定称为Shadowing,如果我们不明确地说,设置新值是不可能的,变量的值是可变的。
谁能更详细地向我解释一下这个概念?
shadowing(重新绑定)有什么区别:
let var = "new_value"
并设置一个新值,如:
var <- "new_value"
这是不是在重新绑定期间我们创建了另一个对象并将该对象的地址分配给变量,而在第二个示例中我们更改了值本身?我是从堆/堆栈概念中提出来的。但我可能错了。
谢谢。
【问题讨论】:
标签: f# immutability shadowing