根据MSDN文档:
设置为false时,禁用 显示声明值 交互式会话的输出。
但是,以下示例交互式会话似乎与该摘要相矛盾。
> let x = 42;;
val x : int = 42
> fsi.ShowDeclarationValues <- false;;
val it : unit = ()
> let y = 42;;
val y : int
我没想到上面的最后一行。
我误解了什么吗?任何人都可以确认这是否是一个错误?
感谢。
答案 0 :(得分:4)
在我看来没有显示最后一行的值,只显示绑定的名称和类型。
答案 1 :(得分:1)
Daniel是正确的 - 这会禁用只打印值而不是声明本身。
有用的一种情况是,为某个值定义一些自定义打印机,以创建一个新窗口作为副作用(例如,表示要显示的图表或某些内容的值)。
例如,你可以这样写:
// 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!