首頁 >後端開發 >Golang >如何在 Go 中將列表值解析為標誌?

如何在 Go 中將列表值解析為標誌?

Susan Sarandon
Susan Sarandon原創
2024-11-29 08:36:131031瀏覽

How to Parse List Values into Flags in Go?

Go 中將列表值解析為 Flag

在 Go 中,相當於 Python 的 argparse 的是 flag 套件。雖然內建標誌類型僅支援字串、整數和布林值,但可以定義自訂標誌類型以容納值列表。

列表的自訂標誌類型

要為列表值定義自訂標誌類型,請在新類型中實作 flag.Value 接口,例如 arrayFlags。 String() 方法提供列表的字串表示形式,Set() 方法用新值更新列表。

綁定自訂標誌

一旦您定義了自訂標誌類型後,您可以使用 flag.Var() 將其綁定到標誌。這允許您在運行時傳遞該標誌的多個值。

範例用法

以下是如何對清單使用自訂標誌類型的範例:

package main

import (
    "flag"
    "fmt"
)

type arrayFlags []string

func (i *arrayFlags) String() string {
    return fmt.Sprintf("%v", *i)
}

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) // Prints [value1 value2]
}

使用下列指令執行此程式碼會將列表值解析到myFlags 中變數:

go run your_file.go --list1 value1 --list1 value2

以上是如何在 Go 中將列表值解析為標誌?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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