Go | 命令套件的函式與介紹
💬 簡介
在開發命令列應用(CLI)時,處理使用者輸入的參數是基本而必要的功能。
Go 語言內建的 flag
套件提供一個簡潔的方式來解析命令列參數,讓我們可以快速開發具有互動性的 CLI 工具。
本篇將介紹
flag
套件的常用函式與實作方式,包含基本參數定義、解析與應用範例,協助你輕鬆實作實用的命令列介面。
圖片來源:Gophers
💡 基本用法
🚩 定義與解析參數
1 | package main |
🚀 執行方式
1 | go run main.go -name=Alice -age=30 -v |
🧱 支援的參數型別
資料型別 | 宣告函式 |
---|---|
字串 | flag.String() |
整數 | flag.Int() |
布林 | flag.Bool() |
浮點數 | flag.Float64() |
時間長度 | flag.Duration() |
🔨 範例:實作簡易命令工具
1 | package main |
🛠️ flag 套件的輔助函式
flag.Parse()
解析命令列參數(需於所有定義之後呼叫)flag.Args()
取得未被解析的額外參數([]string)flag.NArg()
回傳未解析參數的個數flag.Usage = func()
自訂參數說明輸出內容(用於-h
時顯示)
⚠️ 注意事項與補充
- 參數名稱大小寫敏感,例如
-name
與-Name
是不同的。 - 不支援像
--long-option
的雙橫線寫法,預設為單橫線開頭(符合 Unix 習慣)。 - 可使用
flag.Var()
自訂參數型別(需實作flag.Value
介面)。 - 若有複雜 CLI 需求,可考慮使用第三方套件如
spf13/cobra
。
🎯 總結
flag
是 Go 內建的命令列參數解析工具,使用簡單、直覺且能快速上手:
- ✅ 提供多種基本型別的參數處理
- ✅ 支援自訂說明文字與錯誤提示
- ✅ 適合中小型 CLI 應用開發
透過 flag
套件,我們能為應用加入靈活的啟動參數與設定控制,提升工具的使用彈性。
若未來有更複雜的命令結構需求,也可以將 flag
作為基礎,延伸到完整的 CLI 工具套件。
最後建議回顧一下 Go | 菜鳥教學 目錄,了解其章節內容。
註:以上參考了
Go