我想交换两个引用,有没有一种很好的方法使这样的构造工作?
let mutable sarlast = ref (Array.copy ar)
let mutable sarcurr = ref (Array.copy ar)
... some code ...
sarcurr, sarlast <- sarlast, sarcurr
答案 0 :(得分: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