Old*_*vec 3 f# mutable pattern-matching
我想指出F#中的"风险"部分.请考虑以下代码
let mutable a, b as ab = 0, 0
a <- 4
a
ab
Run Code Online (Sandbox Code Playgroud)
你会得到a = 4和ab = 0, 0.这可能是一种正确的行为,我只想指出并了解你的意见.你觉得这种行为是否合乎逻辑,为什么?我有一些问题要接受它,因为我一直认为(a,b)和ab应该是相同的.
如果你let mutable a, b as ab = 0, 0在F#interactive中运行,你会得到:
val mutable ab : int * int = (0, 0)
val mutable b : int = 0
val mutable a : int = 0
Run Code Online (Sandbox Code Playgroud)
这意味着表达式创建了3个不同且独立的值.修改一个值不会影响其他值