我只是想知道是否有人可以向我解釋如何將參考單元傳遞給不是類成員的函數。我一直在關注的MSDN頁面msdn reference cellsF# - 將參考單元傳遞給函數
我有以下代碼:
let myint = ref 32
let mutable myint2 = 23
type addone() =
member t.myadd1func (x:int byref) =
x <- x + 1
let myadd1func (x:int byref) =
x <- x + 1
let adder = new addone()
adder.myadd1func myint
// myadd1func myint <---- this line does not compile
myadd1func &myint2 // <----- this line does though
printfn "%d" !myint
printfn "%d" myint2
我的問題是...是我想提出的「Myadd1func」方法的調用之間的根本區別該類和之後定義的「myadd1func」函數呢?
當我寫這篇文章時,我猜測函數不喜歡將.net對象引用傳遞給它,因爲這可能會破壞與其他IL組件的兼容性?我不介意使用可變值,我只是想了解這些東西。
由於
您可能還會覺得這很有趣。 http://stackoverflow.com/questions/3221200/f-let-mutable-vs-ref – gradbot 2011-02-03 16:31:24