Dela via


Interaktiva alternativ för F#

Den här artikeln beskriver de kommandoradsalternativ som stöds av F# Interactive, fsi.exe. F# Interactive accepterar många av samma kommandoradsalternativ som F#-kompilatorn, men accepterar även några ytterligare alternativ.

Använda F# Interactive för skript

F# Interactive, dotnet fsi, kan startas interaktivt eller startas från kommandoraden för att köra ett skript. Kommandoradssyntaxen är

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

Filnamnstillägget för F#-skriptfiler är .fsx.

Tabell med interaktiva alternativ för F#

I följande tabell sammanfattas de alternativ som stöds av F# Interactive. Du kan ange dessa alternativ på kommandoraden eller via Visual Studio IDE. Om du vill ange de här alternativen i Visual Studio IDE öppnar du menyn Verktyg , väljer Alternativ, expanderar noden F#-verktyg och väljer sedan F# Interactive.

Där listor visas i argument för interaktiva alternativ i F# avgränsas listelement med semikolon (;).

Alternativ Description
-- Används för att instruera F# Interactive att behandla återstående argument som kommandoradsargument till F#-programmet eller skriptet, som du kan komma åt i kod med hjälp av listan fsi. CommandLineArgs.
--checked[+|-] Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--codepage:<int> Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--consolecolors[+|-] Utdata av varnings- och felmeddelanden i färg.
**--compilertool:<extensionsfolder> Referera till en sammansättning eller katalog som innehåller ett designtidsverktyg (kort formulär: -t).
--crossoptimize[+|-] Aktivera eller inaktivera optimeringar mellan moduler.
--debug[+|-]

--debug:[full|pdbonly|portable|embedded]

-g[+|-]

-g:[full|pdbonly|portable|embedded]
Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--define:<string> Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--deterministisk[+|-] Skapar en deterministisk sammansättning (inklusive modulversionens GUID och tidsstämpel).
--Exec Instruerar interaktivT F# att avsluta efter att filerna har lästs in eller skriptfilen som angetts på kommandoraden har lästs in.
--fullpaths Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--gui[+|-] Aktiverar eller inaktiverar händelseloopen i Windows Forms. Standardvärdet är aktiverat.
--Hjälp

-?
Används för att visa kommandoradssyntaxen och en kort beskrivning av varje alternativ.
--lib:<folder-list>

-I:<folder-list>
Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--load:<filename> Kompilerar den angivna källkoden vid start och läser in de kompilerade F#-konstruktionerna i sessionen.
--mlcompatibility Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--noframework Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ
--nologo Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--nowarn:<warning-list> Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--optimize[+|-] Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--preferreduilang:<lang> Anger det önskade språkkulturnamnet för utdata (till exempel es-ES, ja-JP).
--Lugnt Ignorera F# Interactives utdata till stdout-strömmen .
--quotations-debug Anger att extra felsökningsinformation ska genereras för uttryck som härleds från F#-citatliteraler och reflekterade definitioner. Felsökningsinformationen läggs till i de anpassade attributen för en trädnod för F#-uttryck. Se Kodofferter och Expr.CustomAttributes.
--readline[+|-] Aktivera eller inaktivera tabbavslut i interaktivt läge.
--reference:<filename>

-r:<filename>
Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--tailcalls[+|-] Aktivera eller inaktivera användningen av tail IL-instruktionen, vilket gör att stackramen återanvänds för rekursiva tail-funktioner. Det här alternativet är aktiverat som standard.
--targetprofile:<string> Anger målramverksprofilen för den här sammansättningen. Giltiga värden är mscorlib, netcoreeller netstandard. Standardvärdet är mscorlib.
--use:<filename> Instruerar tolken att använda den angivna filen vid start som inledande indata.
--utf8output Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--warn:<warning-level> Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--warnaserror[+|-] Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.
--warnaserror[+|-]:<int-list> Samma som alternativet fsc.exe kompilator. Mer information finns i Kompilatoralternativ.

Interaktiv strukturerad utskrift i F#

F# Interactive (dotnet fsi) använder en utökad version av strukturerad oformaterad textformatering för att rapportera värden.

  1. Alla funktioner i %A oformaterad textformatering stöds och vissa är dessutom anpassningsbara.

  2. Utskriften färgas om färger stöds av utdatakonsolen.

  3. En gräns placeras på längden på de strängar som visas, såvida du inte uttryckligen utvärderar strängen.

  4. En uppsättning användardefinierbara inställningar är tillgängliga via objektet fsi .

De tillgängliga inställningarna för att anpassa oformaterad textutskrift för rapporterade värden är:

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

Anpassa med AddPrinter och AddPrintTransformer

Utskrifter i F# Interaktiva utdata kan anpassas med hjälp fsi.AddPrinter av och fsi.AddPrintTransformer. Den första funktionen ger text som ersätter utskriften av ett objekt. Den andra funktionen returnerar ett surrogatobjekt som ska visas i stället. Tänk till exempel på följande F#-kod:

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" }

Om du kör exemplet i F# Interactive utdata baserat på formateringsalternativuppsättningen. I det här fallet påverkar det formateringen av datum och tid:

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

fsi.AddPrintTransformer kan användas för att ge ett surrogatobjekt för utskrift:

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

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

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

Detta ger följande utdata:

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

Om transformeringsfunktionen skickas till fsi.AddPrintTransformer returnerar nullignoreras utskriftstransformatoren. Detta kan användas för att filtrera valfritt indatavärde genom att börja med typen obj. Till exempel:

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

let y = "beep"

Detta ger följande utdata:

val y : string = ["quack"; "quack"; "quack"]
Title Description
Kompilatoralternativ Beskriver kommandoradsalternativ som är tillgängliga för F#-kompilatorn fsc.exe.