简单的例子,在C#中:
i += 1;
我如何用F#中的可变变量编写此代码?
i <- i + 1
有较短的语法吗?
答案 0 :(得分:5)
否,F#和函数式编程通常不鼓励可变性。因此,这种语言不会使编写可变代码变得方便。
如果您爱+=
,则可以自己创建该运营商:
let inline (+=) a b = a := !a + b
// test
let a = ref 100
a += 2
printfn "%d" !a // 102
您可以检查this article以获得有关Ref
类型的更多信息。
答案 1 :(得分:1)
AFAIK没有内置的运算符可用于递增可变变量,但有一个内置函数可递增int ref
值。
let x = ref 0
incr x
printfn "%A" !x // ! dereferences an int ref