在 GoLang 中定義獨立的 FlagSet
GoLang 中的 FlagSet 類型使開發人員能夠定義不同的標誌集。在命令列介面中實作子命令時,此功能特別有用。然而問題來了:我們如何有效地實現這種分離?
獨立 FlagSet 的實踐
要建立自治的 FlagSet,區分子命令並隨後調用至關重要解析相應的 FlagSet。考慮以下增強範例:
f1 := flag.NewFlagSet("f1", flag.ContinueOnError) silent := f1.Bool("silent", false, "") f2 := flag.NewFlagSet("f2", flag.ContinueOnError) loud := f2.Bool("loud", false, "") switch os.Args[1] { case "apply": if err := f1.Parse(os.Args[2:]); err == nil { fmt.Println("apply", *silent) } case "reset": if err := f2.Parse(os.Args[2:]); err == nil { fmt.Println("reset", *loud) } }
在此程式碼中,我們定義了兩個 FlagSet,一個用於 apply 指令,另一個用於 Reset 指令。 switch 語句標識子指令並在指定的 FlagSet 上呼叫 Parse,有效地隔離每個指令的標誌。
以上是如何在 Go 中為子指令定義和使用獨立的 FlagSet?的詳細內容。更多資訊請關注PHP中文網其他相關文章!