我正在用输入/输出参数包装一些 SQL 存储过程。这当然意味着我必须做一些丑陋的事情,比如将我的参数声明为引用并使用可变对象。
我将如何在 F# 中执行此操作?
我正在用输入/输出参数包装一些 SQL 存储过程。这当然意味着我必须做一些丑陋的事情,比如将我的参数声明为引用并使用可变对象。
我将如何在 F# 中执行此操作?
F# 确实有一个byref
参数。这是 MSDN 页面中的一个示例:
type Incrementor(z) =
member this.Increment(i : int byref) =
i <- i + z
ref
可变变量也存在(尽管 using和variables之间有一个重要区别mutable
,两者都可以用于许多相同的目的)。关于这个主题的MSDN 页面提供了非常丰富的信息 - 包括关于何时使用哪个关键字/结构的讨论。
参考变量示例:
// Declare a reference.
let refVar = ref 6
// Change the value referred to by the reference.
refVar := 50
可变变量示例:
// Declare a reference.
let mutable refVar = 6
// Change the value referred to by the reference.
refVar <- 50
如您所见,分配(以及检索)的语法在两种结构之间也有所不同。