35

F# から DateTime.TryParse を呼び出す正しい方法は何ですか? F# Interactive からいくつかのコードをテストしようとしていますが、変更可能な DateTime を ref によって 2 番目の引数に渡す方法がわかりません。F# の in/out/ref 構文は何ですか?

これは私が見ているメソッド シグネチャです: http://msdn.microsoft.com/en-us/library/ch92fbc1.aspx?cs-save-lang=1&cs-lang=fsharp#code-snippet-1

4

5 に答える 5

74

DateTime変更可能なものを参照渡しする必要がある場合、クリスの答えは正しいです。outただし、F# では、末尾のパラメーターをタプルされた戻り値として処理するコンパイラの機能を使用する方がはるかに慣用的です。

let couldParse, parsedDate = System.DateTime.TryParse("11/27/2012")

ここで、最初の値はbool戻り値で、2 番目の値は割り当てられた出力パラメーターです。

于 2012-11-27T17:21:41.273 に答える
13

F#でDateTime.TryParseを実行する方法は次のとおりです。

let mutable dt2 = System.DateTime.Now
let b2 = System.DateTime.TryParse("12-20-04 12:21:00", &dt2)

&オペレータが参照を変更するためにdt2のメモリアドレスを見つける場所。

F#パラメーターの構文に関する追加情報を次に示します。

于 2012-11-27T17:09:17.133 に答える
10

完全を期すために、さらに別のオプションとして、ref セルを使用することもできます。

let d = ref System.DateTime.MinValue
if (System.DateTime.TryParse("1/1/1", d)) then
   // ...
于 2012-11-27T17:56:42.507 に答える