F# 互動是什麼?
有時候您不想要進行建立、封裝和散發應用程式的流程。 F# 互動是互動式程式設計和指令碼環境。 這可讓您透過主控台或獨立的指令碼檔案,以即時方式撰寫和評估程式碼,讓您輕鬆地從構思概念到建立程式碼。
開始使用 F# 互動
F# 互動內建於 .NET SDK 中。 您可以使用 .NET CLI dotnet fsi 命令來啟動。
dotnet fsi
讀取-評估-列印-迴圈 (REPL)
從開始 F# 互動會將您帶到讀取-評估-列印迴圈 (REPL) 工作階段,您可以在其中撰寫 F# 程式碼,並立即在主控台中評估其輸出。
Microsoft (R) F# Interactive version 13.9.201.0 for F# 9.0
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
>
執行和評估運算式
若要評估您的輸入,您必須在 > 字元之後輸入其內容。
> #help;;
例如,如果執行 #help 命令,輸出會顯示 F# 互動說明功能表。
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
字元 ;; 會分隔表達式的結尾。 等到您輸入 ;; 字元之後,才會評估任何程式碼。 撰寫多行表示式時,此結構很有用,因為您的程式代碼不是以新的行字元分隔。
評估 F# 程式碼是以相同方式運作。 下列程式碼會印出訊息到主況台。
> printfn "Hello World!";;
評估的輸出為:
Hello World!
val it: unit = ()
第一行會顯示所評估程式代碼的輸出,而第二行則顯示輸出的類型資訊。 在此情況下,主控台的值 (val) 輸出的類型為 unit,由令牌表示 () 並系結至 it 名稱。 如果您想要執行更多作業,您可以稍後在程式中存取 it 值。
離開 REPL
使用 F# 互動 REPL 之後,請使用 #q 或 #quit 命令來結束。
> #q;;
F# 文稿檔案
當您撰寫更多程式代碼時,可以使用 fsx 擴展名將程式代碼儲存在腳本中。
如果您使用將訊息列印到控制台的相同範例,您可以建立名為 my-script.fsx 的檔案來撰寫程式代碼。
printfn "Hello World!"
不過要注意的一件事是,在 fsx 檔案中,您不需要在表達式結尾使用 ;; 。 您不需要它,因為在指令碼檔案中,F# 互動可以使用標準 F# 程式碼格式設定方針,例如縮排和新行。
您可以只執行 dotnet fsi,並指定 F# 原始程式碼的指令碼檔案名稱,F# 互動就會即時讀取程式碼並執行程式碼,而不是編譯原始程式碼,然後稍後再執行已編譯的組件。
dotnet fsi my-script.fsx
執行此指令碼會產生下列輸出。
Hello World!