Интерактивные параметры F#
В этой статье описаны параметры командной строки, поддерживаемые F# Interactive, fsi.exe
. F# Interactive принимает множество одинаковых параметров командной строки, что и компилятор F#, но также принимает некоторые дополнительные параметры.
Использование F# Interactive для сценариев
F# Interactive, dotnet fsi
, можно запустить в интерактивном режиме или запустить его из командной строки для запуска скрипта. Синтаксис командной строки:
dotnet fsi [options] [ script-file [arguments] ]
Расширение файла для файлов скриптов F# .fsx
.
Таблица интерактивных параметров F#
В следующей таблице перечислены параметры, поддерживаемые F# Interactive. Эти параметры можно задать в командной строке или с помощью интегрированной среды разработки Visual Studio. Чтобы задать эти параметры в интегрированной среде разработки Visual Studio, откройте меню инструментов, выберите параметры, разверните узел инструментов F#, а затем выберите F# Interactive.
Где списки отображаются в аргументах параметра F# Interactive, элементы списка разделены точкой с запятой (;
).
Выбор | Описание |
---|---|
-- | Используется для указания F# Interactive рассматривать оставшиеся аргументы как аргументы командной строки в программе или скрипте F#, к которым можно получить доступ в коде с помощью списка fsi. CommandLineArgs. |
--checked[+|-] | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в параметрах компилятора . |
--checknulls[+|-] | Аналогично параметру компилятора fsc.exe. Для получения дополнительной информации см. Опции компилятора. |
--codepage:<int> | Аналогично параметру компилятора fsc.exe. Дополнительные сведения, см. параметры компилятора . |
--consolecolors[+|-] | Выводит предупреждения и сообщения об ошибках в цвете. |
**--compilertool:<extensionsfolder> | Ссылка на сборку или каталог, содержащий средство времени разработки (короткая форма: -t). |
--crossoptimize[+|-] | Включение или отключение оптимизации между модулями. |
--debug[+|-] --debug:[full|pdbonly|переносимые|внедренные] -g[+|-] -g:[full|pdbonly|переносимые|внедренные] |
Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в параметрах компилятора. |
--define:<строка> | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в параметрах компилятора. |
--детерминированные[+|-] | Создает детерминированную сборку (включая GUID версии модуля и метку времени). |
--exec | Дает команду для интерактивного режима F# завершить работу после загрузки файлов или выполнения файла скрипта, указанного в командной строке. |
--fullpaths | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в разделе Параметры компилятора. |
--gui[+|-] | Включает или отключает цикл событий Windows Forms. Параметр по умолчанию включён. |
--help -? |
Используется для отображения синтаксиса командной строки и краткого описания каждого параметра. |
--lib:<список папок> -I:<список папок> |
Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в разделе параметры компилятора. |
--load:<имя файла> | Компилирует указанный исходный код при запуске и загружает скомпилированные конструкции F# в сеанс. |
--mlcompatibility | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в разделе Параметры компилятора. |
--noframework | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в разделе Параметры компилятора |
--nologo | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в параметрах компилятора . |
--nowarn:<список предупреждений> | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в параметрах компилятора . |
--optimize[+|-] | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в параметрах компилятора . |
--preferreduilang:<lang> | Указывает предпочтительное имя культуры языка для вывода (например, es-ES, ja-JP). |
--тихо | Отключите вывод F# Interactive в потоке stdout . |
--кавычки-отладка | Указывает, что следует выдавать дополнительную отладочную информацию для выражений, производных от буквальных выражений кавычек F# и отраженных определений. Сведения об отладке добавляются в настраиваемые атрибуты узла дерева выражений F#. См. кавычки кода и Expr.CustomAttributes. |
--readline[+|-] | Включение или отключение завершения вкладки в интерактивном режиме. |
--reference:<имя_файла> -r:<имя файла> |
Аналогично параметру компилятора fsc.exe. Дополнительные сведения см.: параметры компилятора. |
--tailcalls[+|-] | Включите или отключите использование инструкции tail IL, что приводит к повторному использованию кадра стека для рекурсивных функций хвоста. Этот параметр включен по умолчанию. |
--targetprofile:<строковый> | Указывает профиль целевой платформы этой сборки. Допустимые значения: mscorlib , netcore или netstandard . Значение по умолчанию — mscorlib . |
--use:<имя файла> | Сообщает интерпретатору использовать указанный файл при запуске в качестве начального ввода. |
--utf8output | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в параметрах компилятора . |
--warn:<уровень предупреждения> | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в опциях компилятора. |
--warnaserror[+|-] | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в параметрах компилятора ,. |
--warnaserror[+|-]:<int-list> | Аналогично параметру компилятора fsc.exe. Дополнительные сведения см. в разделе параметров компилятора . |
Интерактивная структурированная печать F#
F# Interactive (dotnet fsi
) использует расширенную версию структурированного текстового формата для отображения значений.
Поддерживаются все функции
%A
форматирования обычного текста, и некоторые из них также настраиваются.Печать цветна, если цвета поддерживаются выходной консолью.
Ограничение помещается на длину отображаемых строк, если вы не будете явно оценивать эту строку.
Набор определяемых пользователем параметров доступен через объект
fsi
.
Доступные параметры настройки печати обычного текста для указанных значений:
open System.Globalization
fsi.FormatProvider <- CultureInfo("de-DE") // control the default culture for primitives
fsi.PrintWidth <- 120 // Control the width used for structured printing
fsi.PrintDepth <- 10 // Control the maximum depth of nested printing
fsi.PrintLength <- 10 // Control the length of lists and arrays
fsi.PrintSize <- 100 // Control the maximum overall object count
fsi.ShowProperties <- false // Control whether properties of .NET objects are shown by default
fsi.ShowIEnumerable <- false // Control whether sequence values are expanded by default
fsi.ShowDeclarationValues <- false // Control whether values are shown for declaration outputs
Настройка с помощью AddPrinter
и AddPrintTransformer
Печать в интерактивных выходных данных F# можно настроить с помощью fsi.AddPrinter
и fsi.AddPrintTransformer
.
Первая функция предоставляет текст для замены печати объекта. Вторая функция возвращает суррогатный объект для отображения. Например, рассмотрим следующий код F#:
open System
fsi.AddPrinter<DateTime>(fun dt -> dt.ToString("s"))
type DateAndLabel =
{ Date: DateTime
Label: string }
let newYearsDay1999 =
{ Date = DateTime(1999, 1, 1)
Label = "New Year" }
При выполнении примера в F# Interactive вывод производится в зависимости от установленной опции форматирования. В этом случае это влияет на форматирование даты и времени:
type DateAndLabel =
{ Date: DateTime
Label: string }
val newYearsDay1999 : DateAndLabel = { Date = 1999-01-01T00:00:00
Label = "New Year" }
fsi.AddPrintTransformer
можно использовать для предоставления суррогатного объекта для печати:
type MyList(values: int list) =
member _.Values = values
fsi.AddPrintTransformer(fun (x:MyList) -> box x.Values)
let x = MyList([1..10])
Это выводит:
val x : MyList = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
Если функция преобразователя, переданная в fsi.AddPrintTransformer
, возвращает null
, то преобразователь печати игнорируется.
Это можно использовать для фильтрации любого входного значения, начиная с типа obj
. Например:
fsi.AddPrintTransformer(fun (x:obj) ->
match x with
| :? string as s when s = "beep" -> box ["quack"; "quack"; "quack"]
| _ -> null)
let y = "beep"
Это выводит:
val y : string = ["quack"; "quack"; "quack"]
Связанные разделы
Титул | Описание |
---|---|
Параметры компилятора | Описание параметров командной строки, доступных для компилятора F#, fsc.exe. |