在本文中,您將瞭解如何建構 F# 控制台應用程式。
隱含進入點
根據預設,F# 應用程式會使用隱含進入點。 例如,針對下列程式,進入點是隱含的,而且在執行程式時,程式代碼會從第一行執行到最後一行:
open System
let printSomeText() =
let text = "Hello" + "World"
printfn $"text = {text}"
let showCommandLineArgs() =
for arg in Environment.GetCommandLineArgs() do
printfn $"arg = {arg}"
printSomeText()
showCommandLineArgs()
exit 100
明確進入點
如有需要,您可以使用明確的進入點。 這通常是基於下列其中一個或所有原因所完成:
您偏好透過傳遞至函式的自變數來存取命令行自變數,而不是使用
System.Environment.GetCommandLineArgs()。您要透過傳回結果傳回錯誤碼,而不是使用
exit。您想要在主控台應用程式的最後一個檔案中單元測試程式代碼。
下列範例說明具有明確進入點的簡單 main 函式。
[<EntryPoint>]
let main args =
printfn "Arguments passed to function : %A" args
// Return 0. This indicates success.
0
使用命令行 EntryPoint.exe 1 2 3執行此程式代碼時,輸出如下所示。
Arguments passed to function : [|"1"; "2"; "3"|]
語法
[<EntryPoint>]
let-function-binding
備註
在上一個語法中, let-function-binding 是系結中 let 函式的定義。
編譯為可執行檔之程序的進入點是正式啟動執行的位置。 您可以將 屬性套用 EntryPoint 至程式的 main 函式,以指定 F# 應用程式的進入點。 此函式(使用系結所建立)必須是最後一個編譯檔案中的最後一個 let 函式。 最後一個編譯的檔案是專案中的最後一個檔案,或傳遞至命令行的最後一個檔案。
進入點函式的類型為 string array -> int。 命令行上提供的自變數會傳遞至 main 字串陣列中的函式。 陣列的第一個專案是第一個自變數;可執行檔的名稱不包含在數位中,因為它在某些其他語言中。 傳回值會當做進程的結束代碼使用。 零通常表示成功;非零值表示錯誤。 非零傳回碼的特定意義沒有慣例;傳回碼的意義是應用程式特定的。