首頁  >  文章  >  後端開發  >  如何使用 Golang 中的自訂標誌將多個值解析為清單?

如何使用 Golang 中的自訂標誌將多個值解析為清單?

Linda Hamilton
Linda Hamilton原創
2024-11-16 07:08:03264瀏覽

How can I parse multiple values into a list using custom flags in Golang?

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 連結]

以上是如何使用 Golang 中的自訂標誌將多個值解析為清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn