我有一個非常簡單的 Golang 專案設定。在根目錄中,我有 mod 檔案和 main.go 以及一個名為 main2 的檔案夾。在 main2 檔案夾中有 main2.go 檔案。從根目錄我試圖運行 go run 命令“go run main2/main2.go”,它拋出錯誤“包命令列引數不是主包”有人可以幫忙
uj5u.com熱心網友回復:
您的 main2.go 檔案的包必須是main。當你的專案中有一個 main 包和一個 main 函式時,編譯器知道它將被編譯為可執行檔案,而不是作為庫。
因此,嘗試將package command-line-arguments更改為 main2/main2.go 檔案中的package main 。
uj5u.com熱心網友回復:
Golang 進入可執行檔案的入口點是通過一個 main() 函式。如果您想為單個可執行檔案運行不同的邏輯路徑,您可以使用 main() 作為使用命令列引數的其他包的路由函式:
package main
import (
"os"
// Your child packages get imported here.
)
func main() {
// The first argument
// is always program name
// So os.Args[1] is the first dynamic argument
arg1 := os.Args[1]
// use arg1 to decide which packages to call
if arg1 == "option1" {
// option1 code executes here.
}
if arg1 == "option2" {
// option2 code executes here.
}
}
然后你可以運行你的程式,比如:
go run main.go option1
來自golang 檔案:
程式執行 一個完整的程式是通過將一個單獨的、未匯入的包(稱為主包)與它匯入的所有包傳遞鏈接來創建的。主包必須具有包名 main 并宣告一個不帶引數且不回傳值的函式 main。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/466881.html
上一篇:Go:如何創建一個可以提供組態檔中描述的url的服務器
下一篇:GoLang并發-從不呼叫主程式
