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!