【发布时间】:2014-07-23 01:41:43
【问题描述】:
我在指南中阅读了这个简单的解释:
常量的值不需要在编译时就知道,但你必须给它赋值一次。
但我想要比这更多的细节。如果常量引用了一个对象,我还能修改它的属性吗?如果它引用了一个集合,我可以从中添加或删除元素吗?我来自 C# 背景;它是否类似于readonly 的工作方式(除了能够在方法体中使用它),如果不是,它有什么不同?
【问题讨论】:
-
这似乎意味着您不能更改 var,但是如果 var 指向一个对象,您应该能够以与对象在 a 范围内访问相同的方式对对象进行更改堵塞。 IOW,它是一个 var 指向一个可变数组,数组中的值应该可以改变。
-
如果您来自 C#,那么如果允许的话,它将与“readonly var”具有相同的含义。或 F# 中的“让”。
-
是的,您仍然可以修改属性,具体取决于它们的配置方式。这与 JavaScript 中的
const类似。除非它被冻结/密封或标记为不可写,否则通常仍然可以修改字段。