Как правило, F # не допускает переназначения переменных.Скорее, он поддерживает неизменяемые именованные значения через привязки let.Таким образом, следующее невозможно:
let a = 3
a = 4
Если вы явно не пометите a
как mutable
:
let mutable a = 3
a <- 4
Однако F # в большинстве случаев допускает переменную "затенение",Единственным ограничением является то, что это не может быть сделано на модулях верхнего уровня.Но, например, внутри функции прекрасно работает:
let f () =
let a,b = 1,2
let a,b = b,a //"swap"
a,b