Generally, F# doesn't allow variable re-assignment. Rather it favors immutable named values via let bindings. So, the following is not possible:
let a = 3
a = 4
Unless you explicitly mark a
as mutable
:
let mutable a = 3
a <- 4
However, F# does allow in most situations variable "shadowing". The only restriction to this is that it can not be done on top level modules. But, within a function, for example, the following works fine:
let f () =
let a,b = 1,2
let a,b = b,a //"swap"
a,b
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…