在 Golang 中获取值列表作为标志
在 Golang 中,标准标志包提供了从命令解析标志的功能line,但它本质上仅支持基本类型,例如字符串、整数和布尔值。要将值列表作为标志处理,可以实现自定义 flag.Value 类型并利用 flag.Var() 来绑定它。
下面提供了一个示例实现:
import ( "flag" "fmt" ) type arrayFlags []string // String is a required implementation of the flag.Value interface func (i *arrayFlags) String() string { return fmt.Sprintf("%v", *i) } // Set is another required implementation of 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 parameter.") flag.Parse() }
这个自定义的flag类型可以用来传递多个flag值,例如:
go run your_file.go --list1 value1 --list1 value2
总之,通过实现自定义的flag.Value类型并利用flag.Var(),Golang允许开发者将值列表解析为标志,为命令行参数处理提供更大的灵活性。
以上是如何在 Golang 中将值列表解析为标志?的详细内容。更多信息请关注PHP中文网其他相关文章!