我该如何在F#

时间:2019-05-19 09:23:44

标签: f#

简单的例子,在C#中:

i += 1;

我如何用F#中的可变变量编写此代码?

i <- i + 1

有较短的语法吗?

2 个答案:

答案 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