Вопрос

Согласно документу MSDN:

При установке FALSE отключает отображение значений объявления на выводе интерактивного сеанса.

Тем не менее, следующий пример интерактивного сеанса, по -видимому, противоречит этому сводке.

> let x = 42;;

val x : int = 42

> fsi.ShowDeclarationValues <- false;;

val it : unit = ()

> let y = 42;;

val y : int

Я не ожидал последней строки выше.

Я что -то неправильно понял? Кто -нибудь может подтвердить, если это ошибка?

Спасибо.

Это было полезно?

Решение

Даниэль прав - это отключает просто печать ценности а не декларации сами себя.

Одна ситуация, когда это полезно, заключается в том, что вы определяете какой-то пользовательский принтер для значения, которое создает новое окно в качестве побочного эффекта (например, значение, представляющее диаграмму или что-то, что вы хотите отобразить).

Например, вы можете написать это:

// 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