質問

MSDN Documentaionによると:

falseに設定すると、インタラクティブセッションの出力に宣言値が表示されます。

ただし、次のサンプルインタラクティブセッションは、その要約と矛盾しているようです。

> let x = 42;;

val x : int = 42

> fsi.ShowDeclarationValues <- false;;

val it : unit = ()

> let y = 42;;

val y : int

上記の最後の行を期待していませんでした。

私は何かを誤解しましたか?これがバグかどうかを確認できますか?

ありがとう。

役に立ちましたか?

解決

ダニエルは正しいです - これは単にの印刷だけを無効にします そして、ではありません 宣言 彼ら自身。

これが役立つ状況の1つは、副作用として新しいウィンドウを作成する値のカスタムプリンターを定義する場合です(例:チャートまたは表示するものを表す値)。

たとえば、これを書くことができます:

// Display all evaluated strings in a message box
fsi.ShowDeclarationValues <- false
fsi.AddPrinter(fun (s:string) -> 
  System.Windows.Forms.MessageBox.Show(s) |> ignore; "")

let a = "foo" // Evaluating this line doesn't show message box
let b = "bar" // (dtto)
a + b         // .. but evaluating this line shows the message box!

他のヒント

それを私に見ています しなかった 最後の行の値を表示します。バインディングの名前とタイプのみを示します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top