2

in/out パラメーターを使用していくつかの SQL ストアド プロシージャをラップしています。もちろん、これは、参照によってパラメーターを宣言し、ミュータブルを使用するなど、醜いことをしなければならないことを意味します。

F# でこれを行うにはどうすればよいですか?

4

1 に答える 1

8

F# には確かにbyrefパラメーターがあります。MSDN ページの例を次に示します。

type Incrementor(z) =
    member this.Increment(i : int byref) =
       i <- i + z

ref可変変数も存在します (ただし、usingと変数には重要な違いがあり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

ご覧のとおり、代入 (および検索) の構文も 2 つの構造間で異なります。

于 2009-06-03T18:25:39.457 に答える