Как я могу написать + = работа с изменяемыми в F # - PullRequest
0 голосов
/ 19 мая 2019

с простым регистром, в C #:

i += 1;

как я могу написать это с изменяемым в F #, кроме:

i <- i + 1

есть ли более короткий синтаксис?

Ответы [ 2 ]

5 голосов
/ 19 мая 2019

Нет, F # и функциональное программирование в целом препятствуют изменчивости.Таким образом, язык не делает написание изменяемого кода удобным.

Если вы любите +=, вы можете создать этот оператор самостоятельно:

let inline (+=) a b = a := !a + b
// test
let a = ref 100
a += 2
printfn "%d" !a // 102

Вы можете проверить эту статью для получения дополнительной информации о типе Ref.

1 голос
/ 19 мая 2019

AFAIK Нет встроенного оператора для приращения изменяемых таблиц, но есть встроенная функция для увеличения int ref значений.

let x = ref 0
incr x
printfn "%A" !x  // ! dereferences an int ref
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...