Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive le opzioni della riga di comando supportate da F# Interactive, fsi.exe. F# Interactive accetta molte delle stesse opzioni della riga di comando del compilatore F#, ma accetta anche alcune opzioni aggiuntive.
Usare F# Interactive per lo scripting
F# Interactive, dotnet fsi, può essere avviato in modo interattivo oppure può essere avviato dalla riga di comando per eseguire uno script. La sintassi della riga di comando è
dotnet fsi [options] [ script-file [arguments] ]
L'estensione di file per i file di script F# è .fsx.
Tabella delle opzioni interattive F#
La tabella seguente riepiloga le opzioni supportate da F# Interactive. È possibile impostare queste opzioni nella riga di comando o tramite l'IDE di Visual Studio. Per impostare queste opzioni nell'IDE di Visual Studio, aprire il menu Strumenti, selezionare Opzioni, espandere il nodo Strumenti F#, e quindi selezionare F# Interactive.
Dove gli elenchi vengono visualizzati negli argomenti dell'opzione F# Interactive, gli elementi elenco sono separati da punto e virgola (;).
| Opzione | Descrizione |
|---|---|
| -- | Usato per indicare a F# Interactive di considerare gli argomenti rimanenti come argomenti della riga di comando per il programma o lo script F#, a cui è possibile accedere nel codice usando l'elenco fsi. CommandLineArgs. |
| --checked[+|-] | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --checknulls[+|-] | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --codepage:<int> | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --consolecolors[+|-] | Restituisce messaggi di avviso e di errore a colori. |
| **--compilertool:<extensionsfolder> | Fare riferimento a un assembly o a una directory contenente uno strumento in fase di progettazione (forma breve: -t). |
| --crossoptimize[+|-] | Abilitare o disabilitare le ottimizzazioni tra moduli. |
|
--debug[+|-] --debug:[|pdbonly|portabile|incorporata] -g[+|-] -g:[|pdbonly|portabile|incorporata] |
Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --define:<stringa> | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --deterministic[+|-] | Produce un assembly deterministico ,incluso il GUID della versione del modulo e il timestamp. |
| --exec | Indica a F# interactive di uscire dopo il caricamento dei file o l'esecuzione del file script specificato nella riga di comando. |
| --fullpaths | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --gui[+|-] | Abilita o disabilita il ciclo di eventi di Windows Form. Il valore predefinito è abilitato. |
|
--help -? |
Consente di visualizzare la sintassi della riga di comando e una breve descrizione di ogni opzione. |
|
--lib:<folder-list> -I:<folder-list> |
Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --load:<nome del file> | Compila il codice sorgente specificato all'avvio e carica i costrutti F# compilati nella sessione. |
| --mlcompatibility | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --noframework | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore |
| --nologo | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --nowarn:<> elenco-avvertimenti | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --optimize[+|-] | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --preferreduilang:<lang> | Specifica il nome cultura della lingua di output preferita (ad esempio, es-ES, ja-JP). |
| --silenzioso | Sopprimere l'output di F# Interactive nel flusso stdout. |
| --quotations-debug | Specifica che devono essere generate informazioni di debug aggiuntive per le espressioni derivate dai valori letterali delle virgolette F# e dalle definizioni riflesse. Le informazioni di debug verranno aggiunte agli attributi personalizzati di un nodo dell'albero delle espressioni F#. Vedere citazioni di codice e Expr.CustomAttributes. |
| --readline[+|-] | Abilitare o disabilitare il completamento con tab in modalità interattiva. |
|
--reference:<nome file> -r:<nome file> |
Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --tailcalls[+|-] | Abilitare o disabilitare l'uso dell'istruzione tail IL, che fa sì che lo stack frame venga riutilizzato per le funzioni ricorsive di coda. Questa opzione è abilitata per impostazione predefinita. |
| --targetprofile:<stringa> | Specifica il profilo del framework di destinazione per questo assembly. I valori validi sono mscorlib, netcoreo netstandard. Il valore predefinito è mscorlib. |
| --use:<nome del file> | Indica all'interprete di usare il file specificato all'avvio come input iniziale. |
| --utf8output | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --warn: livello di avviso<> | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --warnaserror[+|-] | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
| --warnaserror[+|-]:<int-list> | Uguale all'opzione del compilatore fsc.exe. Per altre informazioni, vedere opzioni del compilatore . |
Stampa strutturata interattiva F#
F# Interactive (dotnet fsi) usa una versione estesa di formattazione di testo normale strutturato per segnalare i valori.
Tutte le funzionalità di
%Aformattazione di testo normale sono supportate e alcune sono anche personalizzabili.La stampa viene colorata se i colori sono supportati dalla console di output.
Viene impostato un limite sulla lunghezza delle stringhe visualizzate, a meno che non si valuti in modo esplicito tale stringa.
Un set di impostazioni definibili dall'utente è disponibile tramite l'oggetto
fsi.
Le impostazioni disponibili per personalizzare la stampa di testo normale per i valori segnalati sono:
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
Personalizzare con AddPrinter e AddPrintTransformer
La stampa in output interattivi F# può essere personalizzata usando fsi.AddPrinter e fsi.AddPrintTransformer.
La prima funzione fornisce testo per sostituire la stampa di un oggetto . La seconda funzione restituisce invece un oggetto surrogato da visualizzare. Si consideri ad esempio il codice F# seguente:
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" }
Se si esegue l'esempio in F# Interactive, viene restituito in base al set di opzioni di formattazione. In questo caso, influisce sulla formattazione della data e dell'ora:
type DateAndLabel =
{ Date: DateTime
Label: string }
val newYearsDay1999 : DateAndLabel = { Date = 1999-01-01T00:00:00
Label = "New Year" }
fsi.AddPrintTransformer può essere utilizzato per assegnare un oggetto surrogato per la stampa:
type MyList(values: int list) =
member _.Values = values
fsi.AddPrintTransformer(fun (x:MyList) -> box x.Values)
let x = MyList([1..10])
Questo produce:
val x : MyList = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
Se la funzione trasformatore passata a fsi.AddPrintTransformer restituisce null, il trasformatore di stampa viene ignorato.
Può essere usato per filtrare qualsiasi valore di input a partire dal tipo obj. Per esempio:
fsi.AddPrintTransformer(fun (x:obj) ->
match x with
| :? string as s when s = "beep" -> box ["quack"; "quack"; "quack"]
| _ -> null)
let y = "beep"
Questo produce:
val y : string = ["quack"; "quack"; "quack"]
Argomenti correlati
| Titolo | Descrizione |
|---|---|
| Opzioni del Compilatore | Vengono descritte le opzioni della riga di comando disponibili per il compilatore F#, fsc.exe. |