Opcje interakcyjne języka F#
W tym artykule opisano opcje wiersza polecenia obsługiwane przez język F# Interactive, fsi.exe
. F# Interactive akceptuje wiele z tych samych opcji wiersza polecenia co kompilator języka F#, ale akceptuje również niektóre dodatkowe opcje.
Używanie języka F# Interactive do obsługi skryptów
Program F# Interactive, dotnet fsi
, można uruchomić interaktywnie lub można go uruchomić z poziomu wiersza polecenia, aby uruchomić skrypt. Składnia wiersza polecenia to
dotnet fsi [options] [ script-file [arguments] ]
Rozszerzenie pliku dla plików skryptów języka F# to .fsx
.
Tabela opcji interaktywnych języka F#
Poniższa tabela zawiera podsumowanie opcji obsługiwanych przez język F# Interactive. Te opcje można ustawić w wierszu polecenia lub za pomocą środowiska IDE programu Visual Studio. Aby ustawić te opcje w środowisku IDE programu Visual Studio, otwórz menu Narzędzia, wybierz pozycję Opcje, rozwiń węzeł Narzędzia języka F#, a następnie wybierz pozycję F# Interactive.
Gdzie listy są wyświetlane w argumentach opcji interaktywnych języka F#, elementy listy są oddzielone średnikami (;
).
Opcja | Opis |
---|---|
-- | Służy do poinstruowania F# Interactive, aby traktować pozostałe argumenty jako argumenty wiersza polecenia do programu lub skryptu języka F#, do którego można uzyskać dostęp w kodzie przy użyciu listy fsi. CommandLineArgs. |
--sprawdzone[+|-] | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--codepage:<int> | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--consolecolors[+|-] | Zwraca komunikaty ostrzegawcze i komunikaty o błędach w kolorze. |
**--compilertool:<extensionsfolder> | Odwołanie do zestawu lub katalogu zawierającego narzędzie czasu projektowania (krótki formularz: -t). |
--crossoptimize[+|-] | Włączanie lub wyłączanie optymalizacji między modułami. |
--debug[+|-] --debug:[full|pdbonly|portable|embedded] -g[+|-] -g:[full|pdbonly|portable|embedded] |
Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--define:<string> | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--deterministyczne[+|-] | Tworzy zestaw deterministyczny (w tym identyfikator GUID wersji modułu i sygnaturę czasową). |
--Exec | Nakazuje programowi F# zakończenie działania po załadowaniu plików lub uruchomieniu pliku skryptu podanego w wierszu polecenia. |
--fullpaths | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--gui[+|-] | Włącza lub wyłącza pętlę zdarzeń formularzy systemu Windows. Wartość domyślna jest włączona. |
--Pomoc -? |
Służy do wyświetlania składni wiersza polecenia i krótkiego opisu każdej opcji. |
--lib:<folder-list> -I:<folder-list> |
Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--load:<nazwa_pliku> | Kompiluje dany kod źródłowy podczas uruchamiania i ładuje skompilowane konstrukcje języka F# do sesji. |
--mlcompatibility | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--noframework | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora |
--nologo | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--nowarn:<warning-list> | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--optimize[+|-] | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--preferreduilang:<lang> | Określa preferowaną nazwę kultury języka wyjściowego (na przykład es-ES, ja-JP). |
--Ciche | Pomiń dane wyjściowe interakcyjne języka F# na strumień stdout . |
--quotations-debug | Określa, że dodatkowe informacje debugowania powinny być emitowane dla wyrażeń, które pochodzą z literałów cudzysłowu języka F# i odzwierciedlone definicje. Informacje o debugowaniu są dodawane do atrybutów niestandardowych węzła drzewa wyrażeń języka F#. Zobacz Cudzysłów kodu i expr.CustomAttributes. |
--readline[+|-] | Włączanie lub wyłączanie uzupełniania kart w trybie interaktywnym. |
--reference:<nazwa pliku> -r:<nazwa pliku> |
Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--tailcalls[+|-] | Włącz lub wyłącz użycie instrukcji tail IL, co powoduje ponowne użycie ramki stosu dla funkcji rekursywnych ogona. Ta opcja jest domyślnie włączona. |
--targetprofile:<string> | Określa docelowy profil platformy tego zestawu. Prawidłowe wartości to mscorlib , netcore lub netstandard . Wartość domyślna to mscorlib . |
--use:<nazwa_pliku> | Informuje interpretera, aby używał danego pliku podczas uruchamiania jako początkowe dane wejściowe. |
--utf8output | Tak samo jak opcja kompilatora fsc.exe. Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--warn:<warning-level> | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--warnaserror[+|-] | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
--warnaserror[+|-]:<int-list> | Tak samo jak opcja kompilatora fsc.exe . Aby uzyskać więcej informacji, zobacz Opcje kompilatora. |
Interaktywne drukowanie strukturalne języka F#
Język F# Interactive (dotnet fsi
) używa rozszerzonej wersji formatowania zwykłego tekstu do wartości raportu.
Obsługiwane są wszystkie funkcje formatowania zwykłego
%A
tekstu, a niektóre z nich można dodatkowo dostosowywać.Drukowanie jest kolorowane, jeśli kolory są obsługiwane przez konsolę wyjściową.
Limit jest umieszczany na długości wyświetlanych ciągów, chyba że jawnie ocenisz ten ciąg.
Zestaw ustawień możliwych do zdefiniowania użytkownika jest dostępny za pośrednictwem
fsi
obiektu .
Dostępne ustawienia umożliwiające dostosowanie drukowania zwykłego tekstu dla zgłoszonych wartości to:
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
Dostosowywanie za pomocą polecenia AddPrinter
i AddPrintTransformer
Drukowanie w interaktywnych danych wyjściowych języka F# można dostosować przy użyciu poleceń fsi.AddPrinter
i fsi.AddPrintTransformer
.
Pierwsza funkcja daje tekst zastępujący drukowanie obiektu. Druga funkcja zwraca obiekt zastępczy do wyświetlenia. Rozważmy na przykład następujący kod języka 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" }
Jeśli wykonasz przykład w języku F# Interactive, dane wyjściowe będą wyświetlane na podstawie zestawu opcji formatowania. W takim przypadku ma to wpływ na formatowanie daty i godziny:
type DateAndLabel =
{ Date: DateTime
Label: string }
val newYearsDay1999 : DateAndLabel = { Date = 1999-01-01T00:00:00
Label = "New Year" }
fsi.AddPrintTransformer
można użyć do nadania obiektu zastępczego do drukowania:
type MyList(values: int list) =
member _.Values = values
fsi.AddPrintTransformer(fun (x:MyList) -> box x.Values)
let x = MyList([1..10])
Zostaną zwrócone następujące dane wyjściowe:
val x : MyList = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
Jeśli funkcja transformatora przekazana do fsi.AddPrintTransformer
zwraca null
wartość , funkcja przekształcania wydruku jest ignorowana.
Może to służyć do filtrowania dowolnej wartości wejściowej, zaczynając od typu obj
. Na przykład:
fsi.AddPrintTransformer(fun (x:obj) ->
match x with
| :? string as s when s = "beep" -> box ["quack"; "quack"; "quack"]
| _ -> null)
let y = "beep"
Zostaną zwrócone następujące dane wyjściowe:
val y : string = ["quack"; "quack"; "quack"]
Powiązane tematy
Nazwa | opis |
---|---|
Opcje kompilatora | Opisuje opcje wiersza polecenia dostępne dla kompilatora języka F#, fsc.exe. |