我想指出F#中的“危险”部分。考虑以下代码
let mutable a, b as ab = 0, 0
a <- 4
a
ab
您将得到
a = 4
和ab = 0, 0
。这可能是正确的行为,我只是想指出来并了解您的意见。您是否认为此行为合乎逻辑,为什么?我有一些问题无法接受,因为我一直认为(a,b)和ab应该相同。 最佳答案
如果在F#交互式环境中运行let mutable a, b as ab = 0, 0
,您将获得:
val mutable ab : int * int = (0, 0)
val mutable b : int = 0
val mutable a : int = 0
这意味着该表达式创建了3个不同且独立的值。修改一个值不会影响其他值