Golang 中列表的自訂標誌
Golang 的標誌包允許簡單的參數解析,但它通常支援基本類型,如字元串、整數、或布林值。在使用值列表時,這似乎是有限制的。
Golang 允許透過實作 flag.Value 介面來建立自訂標誌。此介面需要實作兩個方法:String() 和 Set()。透過為清單定義自訂標誌,您可以解析透過命令列標誌傳遞的多個值。
定義自訂清單標誌
考慮以下範例:
package main import "flag" import "fmt" type arrayFlags []string // String() implements the flag.Value interface func (i *arrayFlags) String() string { return fmt.Sprintf("%v", *i) } // Set() implements the flag.Value interface func (i *arrayFlags) Set(value string) error { *i = append(*i, value) return nil } var myFlags arrayFlags func main() { flag.Var(&myFlags, "list1", "Some description for this param.") flag.Parse() fmt.Println(myFlags) }
這定義了一個名為 arrayFlags 的自訂標誌類型,它接受多個值。此標誌綁定到「list1」標誌名稱,可以使用 flag.Parse() 進行解析。
用法
若要使用此自訂標誌傳遞多個值,您可以如下執行程式:
go run your_file.go --list1 value1 --list1 value2 --list1 value3
這將使用提供的三個值填入myFlags變數:[“value1”、“value2”、“value3”]。然後,您可以在程式中存取這些值。
Playground
相關實例,您可以訪問以下 Playground:[playground 連結]
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3