Sdílet prostřednictvím


Možnosti F# Interactive

Tento článek popisuje možnosti příkazového řádku podporované jazykem F# Interactive, fsi.exe. F# Interactive přijímá mnoho stejných možností příkazového řádku jako kompilátor F#, ale také přijímá některé další možnosti.

Použití jazyka F# Interactive pro skriptování

F# Interactive, dotnet fsi, lze spustit interaktivně, nebo lze spustit z příkazového řádku ke spuštění skriptu. Syntaxe příkazového řádku je

dotnet fsi [options] [ script-file [arguments] ]

Přípona souboru pro soubory skriptu F# je .fsx.

Tabulka interaktivních možností jazyka F#

Následující tabulka shrnuje možnosti podporované jazykem F# Interactive. Tyto možnosti můžete nastavit na příkazovém řádku nebo prostřednictvím integrovaného vývojového prostředí sady Visual Studio. Pokud chcete tyto možnosti nastavit v integrovaném vývojovém prostředí sady Visual Studio, otevřete nabídku Nástroje, vyberte Možnosti, rozbalte uzel F# nástroje a zvolte F# Interactive.

Kde se seznamy zobrazují v argumentech možností F# Interactive, jsou prvky seznamu oddělené středníky (;).

Možnost Popis
-- Používá se k pokynu F# Interactive, aby zbývající argumenty zpracovával jako argumenty příkazového řádku pro program nebo skript jazyka F#, ke kterým můžete přistupovat v kódu pomocí seznamu fsi. CommandLineArgs.
--checked[+|-] Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--checknulls[+|-] Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--codepage:<int> Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--consolecolors[+|-] Vypíše upozornění a chybové zprávy barevně.
**---compilertool:<extensionsfolder> Odkázat na sestavení nebo adresář obsahující nástroj pro dobu návrhu (zkrácená forma: -t).
--crossoptimize[+|-] Povolte nebo zakažte optimalizace napříč moduly.
--debug[+|-]

--debug:[plný|pdbonly|přenosný|zapouzdřený]

-g[+|-]

-g:[plné||přenosné|vložené]
Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--define:<řetězec> Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--deterministický[+|-] Vytvoří deterministické sestavení (včetně identifikátoru GUID verze modulu a časového razítka).
--exec Instruuje F# interactive, aby se ukončil po načtení souborů nebo spuštění souboru skriptu poskytnutého na příkazovém řádku.
--fullpaths Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--gui[+|-] Povolí nebo zakáže smyčku událostí Windows Forms. Výchozí hodnota je povolená.
--help

-?
Používá se k zobrazení syntaxe příkazového řádku a stručného popisu jednotlivých možností.
--lib:<seznamu složek>

-I:<seznam složek>
Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--load:<název souboru> Zkompiluje daný zdrojový kód při spuštění a načte kompilované konstrukty jazyka F# do relace.
--mlcompatibility Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--noframework Stejné jako možnost kompilátoru fsc.exe. Další informace najdete v tématu Možnosti kompilátoru
--nologo Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--nowarn:<seznamu upozornění> Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--optimize[+|-] Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--preferreduilang:<lang> Určuje upřednostňovaný název jazykové verze výstupu (například es-ES, ja-JP).
--quiet Potlačit výstup jazyka F# Interactive na datový proud stdout.
--quotations-debug Určuje, že by se měly pro výrazy odvozené z uvozovek F# generovat dodatečné informace o ladění a promítat definice. Ladicí informace jsou přidány do vlastních atributů uzlu stromu výrazů jazyka F#. Viz Kódové citace a Expr.CustomAttributes.
--readline[+|-] Povolte nebo zakažte automatické doplňování pomocí klávesy Tab v interaktivním režimu.
--reference:<název souboru>

-r:<název souboru>
Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--tailcalls[+|-] Povolte nebo zakažte použití koncové instrukce IL, což způsobí opětovné použití rámce zásobníku pro rekurzivní funkce tail. Tato možnost je ve výchozím nastavení povolená.
--targetprofile:<řetězcový> Určuje profil cílové architektury tohoto sestavení. Platné hodnoty jsou mscorlib, netcorenebo netstandard. Výchozí hodnota je mscorlib.
--use:<název souboru> Řekne interpretovi, aby jako počáteční vstup použil daný soubor při spuštění.
--utf8output Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--warn:<úroveň upozornění> Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--warnaserror[+|-] Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.
--warnaserror[+|-]:<seznam celých čísel> Stejné jako možnost kompilátoru fsc.exe. Další informace naleznete v tématu Možnosti kompilátoru.

F# interaktivní strukturovaný tisk

F# Interactive (dotnet fsi) používá rozšířenou verzi formátování strukturovaného prostého textu k hlášení hodnot.

  1. Podporují se všechny funkce %A formátování prostého textu a některé jsou navíc přizpůsobitelné.

  2. Tisk je barevný, pokud výstupní konzola podporuje barvy.

  3. Je stanoven limit na délky zobrazených řetězců, pokud ten řetězec explicitně nevyhodnotíte.

  4. Sada uživatelsky definovatelných nastavení je k dispozici prostřednictvím fsi objektu.

Dostupná nastavení pro přizpůsobení tisku ve formátu prostého textu pro ohlášené hodnoty jsou:

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

Přizpůsobení pomocí AddPrinter a AddPrintTransformer

Tisk ve výstupech F# Interactive lze přizpůsobit pomocí fsi.AddPrinter a fsi.AddPrintTransformer. První funkce poskytuje text, který nahradí tisk objektu. Druhá funkce vrátí náhradní objekt, který se místo toho zobrazí. Představte si například následující kód jazyka 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" }

Pokud spustíte příklad v F# Interactive, zobrazí se výstup založený na sadě možností formátování. V tomto případě má vliv na formátování data a času:

type DateAndLabel =
  { Date: DateTime
    Label: string }
val newYearsDay1999 : DateAndLabel = { Date = 1999-01-01T00:00:00
                                       Label = "New Year" }

fsi.AddPrintTransformer lze použít k poskytnutí náhradního objektu pro tisk:

type MyList(values: int list) =
    member _.Values = values

fsi.AddPrintTransformer(fun (x:MyList) -> box x.Values)

let x = MyList([1..10])

Tohle je výstup:

val x : MyList = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]

Pokud funkce transformátoru předaná fsi.AddPrintTransformer vrátí null, bude transformátor pro tisk ignorován. To lze použít k filtrování libovolné vstupní hodnoty tak, že začíná typem obj. Například:

fsi.AddPrintTransformer(fun (x:obj) ->
    match x with
    | :? string as s when s = "beep" -> box ["quack"; "quack"; "quack"]
    | _ -> null)

let y = "beep"

Toto vypíše:

val y : string = ["quack"; "quack"; "quack"]
Titul Popis
možnosti kompilátoru Popisuje možnosti příkazového řádku dostupné pro kompilátor jazyka F# fsc.exe.