Рассмотрим следующий код:`` ref` против оператора присваивания mutable` с помощью F #
let mutable a = 0.
let b = ref 0.
a <- // works
printfn "%A" a
4. + 8.
b := // does not work
printfn "%A" a
4. + 8.
b := (// works
printfn "%A" a
4. + 8.)
Почему оператор присваивания ссылок (: =) имеют различное поведение, чем изменяемом оператора присваивания (< -) ?
Не могли бы вы более подробно остановиться на этом: «Они не создают новую область (что я знаю), и вы не можете определять функции, например, как часть выражение."? Пример был бы лучшим, поскольку я не уверен, что понимаю. –
Я просто имею в виду, что вы не можете передать все после 'let x =' в моем примере выше как аргумент функции. Для аргументов функции требуются более простые выражения. Это объясняет, почему ': =', которая является функцией, и '='/'<-', которые являются операторами присваивания, ведут себя по-разному. – Daniel