Vad är F# Interactive?
Ibland vill du inte gå igenom processen med att skapa, paketera och distribuera ett program. F# Interactive är en interaktiv programmerings- och skriptmiljö. Det gör det enkelt att gå från idé till kod genom att låta dig skriva och utvärdera kod i realtid via konsolen eller fristående skriptfiler.
Starta interaktivT F#
F# Interactive är inbyggt i .NET SDK. Du kan starta den med .NET CLI-kommandot dotnet fsi
.
dotnet fsi
Read-Evaluate-Print-Loop (REPL)
När du startar F# Interactive startas du i en REPL-session (read-evaluate-print-loop) där du kan skriva F#-koden och omedelbart utvärdera dess utdata i konsolen.
Microsoft (R) F# Interactive version 11.4.2.0 for F# 5.0
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
>
Köra och utvärdera uttryck
Om du vill utvärdera dina indata måste du ange den efter >
tecknet.
> #help;;
Om du till exempel kör #help
kommandot visas menyn interaktiv hjälp för F# i utdata.
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
#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
#quit;; // Exit
F# Interactive command line options:
See 'dotnet fsi --help' for options
Slutet på ett uttryck avgränsas av ;;
tecknen. Ingen kod utvärderas förrän du anger ;;
tecknen. Den här strukturen är användbar när du skriver flerradsuttryck eftersom koden inte avgränsas med nya radtecken.
Utvärdering av F#-kod fungerar på samma sätt. Följande kod skriver ut ett meddelande till konsolen.
> printfn "Hello World!";;
De utvärderade utdata är:
Hello World!
val it : unit = ()
Den första raden visar utdata från den utvärderade koden medan den andra raden visar typinformation för utdata. I det här fallet är värdet som utdata till konsolen av typen unit
, som representeras av ()
token och är bunden till it
namnet. Du kan komma åt värdet it
senare i programmet om du vill utföra fler åtgärder.
Avsluta REPL
När du har använt den interaktiva F#-REPL:n använder du #q
kommandona eller #quit
för att avsluta.
> #q;;
fsx-skriptfiler
När du skriver mer kod kan du spara koden i ett skript med filnamnstillägget fsx .
Om du använder samma exempel på hur du skriver ut ett meddelande till konsolen kan du skapa en fil med namnet my-script.fsx för att skriva in koden.
printfn "Hello World!"
En sak att notera är dock att i fsx-filer behöver du inte använda ;;
i slutet av dina uttryck. Du behöver det inte eftersom F# Interactive i skriptfiler kan använda standardriktlinjer för F#-kodformatering som indrag och nya rader.
I stället för att kompilera källkoden och senare köra den kompilerade sammansättningen kan du bara köra dotnet fsi
och ange namnet på din skriptfil som innehåller F#-koden, och F# interactive läser koden och kör den i realtid.
dotnet fsi my-script.fsx
När du kör det här skriptet genereras följande utdata.
Hello World!