Hva er F# Interactive?
Noen ganger vil du ikke gå gjennom prosessen med å opprette, pakke og distribuere et program. F# Interactive er et interaktivt programmerings- og skriptmiljø. Det gjør det enkelt å gå fra idé til kode ved å la deg skrive og evaluere kode i sanntid gjennom konsollen eller frittstående skriptfiler.
Starter F# Interactive
F# Interactive er innebygd i .NET SDK. Du kan starte den med kommandoen .NET CLI dotnet fsi.
dotnet fsi
Les-evaluer-Print-Loop (REPL)
Når du starter F# Interactive, startes du i en repl-økt (read-evaluate-print-loop), der du kan skrive F#-koden og umiddelbart evaluere utdataene i konsollen.
Microsoft (R) F# Interactive version 13.9.201.0 for F# 9.0
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
>
Kjøre og evaluere uttrykk
Hvis du vil evaluere inndataene, må du skrive det inn etter det > tegnet.
> #help;;
Hvis du for eksempel kjører kommandoen #help, viser utdataene hjelpemenyen F# Interactive.
F# Interactive directives:
#r "file.dll";; // Reference (dynamically load) the given DLL
#i "package source uri";; // Include package source uri when searching for packages
#I "path";; // Add the given search path for referenced DLLs
#load "file.fs" ...;; // Load the given file(s) as if compiled and referenced
#time ["on"|"off"];; // Toggle timing on/off
#help;; // Display help
#help "idn";; // Display documentation for an identifier, e.g. #help "List.map";;
#r "nuget:FSharp.Data, 3.1.2";; // Load Nuget Package 'FSharp.Data' version '3.1.2'
#r "nuget:FSharp.Data";; // Load Nuget Package 'FSharp.Data' with the highest version
#clear;; // Clear screen
#quit;; // Exit
F# Interactive command line options:
See 'dotnet fsi --help' for options
Tegnene ;; skilles fra slutten av et uttrykk. Ingen kode evalueres før du skriver inn ;; tegn. Denne strukturen er nyttig når du skriver flerlinjede uttrykk siden koden ikke er skilletegn med nye linjetegn.
Evaluering av F#-kode fungerer på samme måte. Følgende kode skriver ut en melding til konsollen.
> printfn "Hello World!";;
Evaluert utdata er:
Hello World!
val it: unit = ()
Den første linjen viser utdataene fra den evaluerte koden, mens den andre linjen viser typeinformasjonen for utdataene. I dette tilfellet er verdien (val) utdata til konsollen av typen unit, som representeres av tokenet () og bundet til it navnet. Du kan få tilgang til den it verdien senere i programmet hvis du vil utføre flere operasjoner.
Avslutte REPL
Når du har brukt F# Interactive REPL, bruker du kommandoene #q eller #quit til å avslutte.
> #q;;
F#-skriptfiler
Når du skriver mer kode, kan du lagre koden i et skript med filtypen fsx.
Hvis du bruker samme eksempel på utskrift av en melding til konsollen, kan du opprette en fil som heter my-script.fsx for å skrive inn koden.
printfn "Hello World!"
En ting å merke seg er imidlertid at i fsx filer, trenger du ikke å bruke ;; på slutten av uttrykkene. Du trenger det ikke fordi F# Interactive i skriptfiler kan bruke standard retningslinjer for F#-kodeformatering, for eksempel innrykk og nye linjer.
I stedet for å kompilere kildekoden og deretter senere kjøre den kompilerte samlingen, kan du bare kjøre dotnet fsi og angi navnet på skriptfilen som inneholder F#-koden, og F# interaktiv leser koden og utfører den i sanntid.
dotnet fsi my-script.fsx
Hvis du kjører dette skriptet, produseres følgende utdata.
Hello World!