首页 > 后端开发 > Golang > 如何在 Go 中将列表值解析为标志?

如何在 Go 中将列表值解析为标志?

Susan Sarandon
发布: 2024-11-29 08:36:13
原创
1031 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板