В этом коде показано, как заставить функцию видоизменять свой вход - одна из вещей, которую мы избегаем в F #.
type Age = { mutable n : int }
let printInside a = printfn "Inside = %d" a.n
let inside a =
a.n <- a.n + 1
a.n
let a = {n = 1}
printInside a //a = 1
inside a
printInside a //a = 2
Как говорится, как я могу сделать то же самое с [<Struct>] Record
с? Я подозреваю, что ref
или byref
могут быть вовлечены, но я просто не могу заставить его работать.
type [<Struct>] Age = { mutable n : int }
let printInside a = printfn "Inside = %d" a.n
let inside a =
a.n <- a.n + 1
a.n
let a = {n = 1}
printInside a //a = 1
inside a
printInside a //a = 2