Bagikan melalui


Opsi Interaktif F#

Artikel ini menjelaskan opsi baris perintah yang didukung oleh F# Interactive, fsi.exe. F# Interactive menerima banyak opsi baris perintah yang sama dengan kompilator F#, tetapi juga menerima beberapa opsi tambahan.

Gunakan F# Interactive untuk pembuatan skrip

F# Interactive, dotnet fsi, dapat diluncurkan secara interaktif, atau dapat diluncurkan dari baris perintah untuk menjalankan skrip. Sintaks baris perintah adalah

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

Ekstensi file untuk file skrip F# adalah .fsx.

Tabel Opsi Interaktif F#

Tabel berikut ini meringkas opsi yang didukung oleh F# Interactive. Anda dapat mengatur opsi ini pada baris perintah atau melalui IDE Visual Studio. Untuk mengatur opsi ini di Visual Studio IDE, buka menu Tools, pilih opsi , perluas F# Tools node, lalu pilih F# Interactive.

Di mana daftar muncul dalam argumen opsi Interaktif F#, elemen daftar dipisahkan oleh titik koma (;).

Pilihan Deskripsi
-- Digunakan untuk menginstruksikan F# Interactive untuk memperlakukan argumen yang tersisa sebagai argumen baris perintah ke program atau skrip F#, yang dapat Anda akses dalam kode dengan menggunakan daftar fsi. CommandLineArgs.
--diperiksa[+|-] Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--checknulls[+|-] Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--codepage:<int> Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--consolecolors[+|-] Menghasilkan pesan peringatan dan kesalahan dalam warna.
**--compilertool:<extensionsfolder> Referensikan assembly atau direktori yang berisi alat waktu desain (Bentuk pendek: -t).
--crossoptimize[+|-] Mengaktifkan atau menonaktifkan pengoptimalan lintas modul.
--debug[+|-]

--debug:[penuh|pdbonly|portabel|tertanam]

-g[+|-]

-g:[penuh pdbonly||portabel|tertanam]
Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--define:<string> Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--deterministik [+|-] Menghasilkan kompilasi deterministik (termasuk GUID versi modul dan tanda waktu).
--exec Menginstruksikan F# interaktif untuk keluar setelah memuat file atau menjalankan file skrip yang diberikan pada baris perintah.
--fullpaths Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--gui[+|-] Mengaktifkan atau menonaktifkan perulangan peristiwa Formulir Windows. Pengaturan awal ini diaktifkan.
--help

-?
Digunakan untuk menampilkan sintaks baris perintah dan deskripsi singkat dari setiap opsi.
--lib:<folder-list>

-I:<daftar folder>
Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--load:<nama file> Mengkompilasi kode sumber yang diberikan saat startup dan memuat konstruksi F# yang dikompilasi ke dalam sesi.
--mlcompatibility Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--noframework Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi
--nologo Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--nowarn:<daftar peringatan> Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--optimalkan[+|-] Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--preferreduilang:<bahasa> Menentukan nama budaya bahasa output pilihan (misalnya, es-ES, ja-JP).
-- tenang Menghilangkan output F# Interactive ke aliran stdout.
--quotations-debug Menentukan bahwa informasi debugging ekstra harus dihasilkan untuk ekspresi yang berasal dari literal kutipan F# dan definisi yang direfleksikan. Informasi debugging ditambahkan ke atribut kustom node pohon ekspresi F#. Lihat Kutipan Kode dan Expr.CustomAttributes.
--readline[+|-] Aktifkan atau nonaktifkan penyelesaian tab dalam mode interaktif.
--reference:<nama file>

-r:<nama file>
Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--tailcalls[+|-] Aktifkan atau nonaktifkan penggunaan instruksi IL ekor, yang menyebabkan bingkai tumpukan digunakan kembali untuk fungsi rekursif ekor. Opsi ini diaktifkan secara default.
--targetprofile:<string> Menentukan profil kerangka kerja target dari rakitan ini. Nilai yang valid adalah mscorlib, netcore, atau netstandard. Defaultnya adalah mscorlib.
--use:<nama file> Memberi tahu penerjemah untuk menggunakan file yang diberikan saat memulai sebagai input awal.
--utf8output Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--warn:<tingkat peringatan> Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--warnaserror[+|-] Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.
--warnaserror[+|-]:<int-list> Sama seperti opsi pengkompilasi fsc.exe. Untuk informasi selengkapnya, lihat Opsi Pengkompilasi.

F# Pencetakan terstruktur interaktif

F# Interactive (dotnet fsi) menggunakan versi yang diperluas dari pemformatan teks biasa terstruktur untuk melaporkan nilai.

  1. Semua fitur pemformatan teks biasa %A didukung, dan beberapa juga dapat disesuaikan.

  2. Pencetakan akan berwarna jika konsol output mendukung warna.

  3. Batas ditempatkan pada panjang string yang ditampilkan, kecuali Anda secara eksplisit mengevaluasi string tersebut.

  4. Sekumpulan pengaturan yang dapat ditentukan pengguna tersedia melalui objek fsi.

Pengaturan yang tersedia untuk menyesuaikan pencetakan teks biasa untuk nilai yang dilaporkan adalah:

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

Menyesuaikan dengan AddPrinter dan AddPrintTransformer

Dalam output F# Interaktif, pencetakan dapat disesuaikan dengan menggunakan fsi.AddPrinter dan fsi.AddPrintTransformer. Fungsi pertama memberi teks untuk menggantikan pencetakan objek. Fungsi kedua mengembalikan objek pengganti untuk ditampilkan sebagai gantinya. Misalnya, pertimbangkan kode F# berikut:

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

Jika Anda menjalankan contoh di F# Interactive, itu menghasilkan berdasarkan kumpulan opsi pemformatan. Dalam hal ini, ini memengaruhi pemformatan tanggal dan waktu:

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

fsi.AddPrintTransformer dapat digunakan untuk memberikan objek pengganti untuk pencetakan:

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

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

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

Output ini:

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

Jika fungsi transformator yang diteruskan ke fsi.AddPrintTransformer mengembalikan null, maka transformator cetak diabaikan. Ini dapat digunakan untuk memfilter nilai input apa pun dengan memulai dengan jenis obj. Misalnya:

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

let y = "beep"

Output ini:

val y : string = ["quack"; "quack"; "quack"]
Titel Deskripsi
Opsi Pengkompilasi Menjelaskan opsi baris perintah yang tersedia untuk pengkompilasi F#, fsc.exe.