Megosztás a következőn keresztül:


Az F# interaktív beállításai

Ez a cikk az F# Interactive fsi.exeáltal támogatott parancssori beállításokat ismerteti. Az F# Interactive számos olyan parancssori beállítást elfogad, mint az F# fordító, de néhány további lehetőséget is elfogad.

Az F# Interactive használata szkriptekhez

Az F# Interaktív dotnet fsiinteraktívan indítható el, vagy a parancssorból indítható el egy szkript futtatásához. A parancssori szintaxis a következő:

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

Az F#-szkriptfájlok fájlkiterjesztése .fsx.

Az F# interaktív beállításainak táblázata

Az alábbi táblázat az F# Interactive által támogatott beállításokat foglalja össze. Ezeket a beállításokat a parancssorban vagy a Visual Studio IDE-n keresztül állíthatja be. Ha meg szeretné adni ezeket a beállításokat a Visual Studio IDE-ben, nyissa meg az Eszközök menüt, válassza a Beállításoklehetőséget, bontsa ki az F# Eszközök csomópontot, majd válassza F# Interaktívlehetőséget.

Ahol a listák megjelennek az F# interaktív beállítás argumentumaiban, a listaelemek pontosvesszővel (;) vannak elválasztva.

Opció Leírás
-- Az F# Interactive utasítása a fennmaradó argumentumok parancssori argumentumként való kezelésére az F# program vagy szkript számára, amelyet kódban érhet el az fsi lista használatával. CommandLineArgs.
--ellenőrzött[+|-] Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--checknulls[+|-] Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--codepage:<int> Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--consolecolors[+|-] A kimenetek figyelmeztetései és hibaüzenetei színesek.
**--compilertool:<extensionsfolder> Hivatkozás egy tervezési idejű eszközt tartalmazó összeállításra vagy könyvtárra (rövid forma: -t).
--keresztoptimalizál[+|-] Modulközi optimalizálás engedélyezése vagy letiltása.
--debug[+|-]

--debug:[teljes|pdbonly|hordozható|beágyazott]

-g[+|-]

-g:[teljes|pdbonly|portable|beágyazott]
Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
–-define:<string> Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--determinisztikus[+|-] Determinisztikus szerelvényt hoz létre (beleértve a modul GUID-verzióját és az időbélyeget).
--exec Arra utasítja az F#-t, hogy lépjen ki a fájlok betöltése vagy a parancssorban megadott szkriptfájl futtatása után.
--fullpaths Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--gui[+|-] Engedélyezi vagy letiltja a Windows Forms eseményhurkot. Az alapértelmezett beállítás engedélyezve van.
– súgó

-?
Az egyes beállítások parancssori szintaxisának és rövid leírásának megjelenítésére szolgál.
--lib:<mappalista>

-I:<mappalista>
Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--load:<fájlnév> Az indításkor lefordítja a megadott forráskódot, és betölti a lefordított F#-szerkezeteket a munkamenetbe.
--mlcompatibility Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--noframework Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai
--nologo Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--nowarn:<figyelmeztetési lista> Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--optimalizálás[+|-] Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--preferreduilang:<lang> Megadja az előnyben részesített kimeneti nyelvi kultúra nevét (például es-ES, ja-JP).
- csendes Az F# Interactive kimenetének letiltása a stdout streamben.
--idézetek-hibakeresés Meghatározza, hogy hibakereséshez szükséges extra információkat kell generálni olyan kifejezések számára, amelyek az F# idéző literálokból és a tükrözött definíciókból származnak. A hibakeresési információk hozzá lesznek adva egy F# kifejezésfacsomópont egyéni attribútumaihoz. Lásd: Kódrészletek és Expr.CustomAttributes.
--readline[+|-] Tabulátor kiegészítés engedélyezése vagy letiltása interaktív módban.
--reference:<fájlnév>

-r:<fájlnév>
Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--tailcalls[+|-] Engedélyezze vagy tiltsa le a tail IL utasítás használatát, ami miatt a veremkeret újra felhasználható a farok rekurzív funkcióihoz. Ez a beállítás alapértelmezés szerint engedélyezve van.
--targetprofile:<string> Meghatározza a szerelvény cél-keretrendszerprofilját. Az érvényes értékek a következők: mscorlib, netcorevagy netstandard. Az alapértelmezett érték a mscorlib.
–-use:<fájlnév> Utasítja az értelmezőt, hogy a megadott fájlt használja indításkor kezdeti bemenetként.
--utf8output Ugyanaz, mint a fsc.exe fordítóbeállítás. További információ: Fordító beállításai.
--warn:<figyelmeztetési szintű> Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--warnaserror[+|-] Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.
--warnaserror[+|-]:<int-list> Ugyanaz, mint a fsc.exe fordítói opció. További információ: Fordító beállításai.

F# Interaktív strukturált nyomtatás

Az F# Interactive (dotnet fsi) strukturált egyszerű szövegformázási bővített verzióját használja az értékek jelentéséhez.

  1. A %A egyszerű szövegformázás minden funkciója támogatott, néhány pedig testre szabható.

  2. A nyomtatás színezett, ha a kimeneti konzol támogatja a színeket.

  3. A korlát a megjelenített sztringek hosszára vonatkozik, kivéve, ha explicit módon értékeli ki ezt a sztringet.

  4. A felhasználó által definiálható beállítások készlete a fsi objektumon keresztül érhető el.

A jelentett értékek egyszerű szöveges nyomtatásának testreszabásához elérhető beállítások a következők:

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

Testreszabás AddPrinter és AddPrintTransformer

Az F# interaktív kimenetekben való nyomtatás testre szabható fsi.AddPrinter és fsi.AddPrintTransformerhasználatával. Az első függvény szöveget ad egy objektum nyomtatásának helyére. A második függvény ehelyett egy helyettesítő objektumot ad vissza. Vegyük például a következő F# kódot:

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

Ha a példát az F# Interactive-ban hajtja végre, az a formázási beállítások alapján jeleníti meg az eredményt. Ebben az esetben a dátum és az idő formázására van hatással:

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

fsi.AddPrintTransformer használható helyettesítő objektum nyomtatásához:

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

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

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

Ez a kimenet:

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

Ha az fsi.AddPrintTransformer átadott transzformátorfüggvény nullad vissza, akkor a rendszer figyelmen kívül hagyja a nyomtatási transzformátort. Ezzel szűrheti a bemeneti értékeket a objtípustól kezdve. Például:

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

let y = "beep"

Ez a kimenet:

val y : string = ["quack"; "quack"; "quack"]
Cím Leírás
Fordító beállításai Az F# fordítóhoz elérhető parancssori beállításokat ismerteti, fsc.exe.