1

我想交换两个引用,有没有一种很好的方法可以使这样的构造工作?

 let mutable sarlast = ref (Array.copy ar)
 let mutable sarcurr = ref (Array.copy ar)
 ... some code ...

 sarcurr, sarlast <- sarlast, sarcurr
4

1 回答 1

3

不,<-是单赋值,元组在 F# 中是不可变的。

您可以为此目的定义一个中缀函数(@bytebuster 的单行建议):

let (>-<) x y = let temp = !x in x := !y; y := temp

// Usage
let a = ref [|1|]
let b = ref [|2|]
a >-< b
于 2012-06-17T13:35:23.207 回答