【问题标题】:How to parse a list of parameters in Golang (multiple duplicate and comma separated)?如何解析Golang中的参数列表(多个重复和逗号分隔)?
【发布时间】:2021-07-08 18:56:58
【问题描述】:

我需要在 GO 中解析不同的参数(多个重复和逗号分隔)。这个例子我该怎么做:

go run ./test.go -param "one, two" -param "tree" -param "four"

This example 很好,但不适用于上述示例:

[one, two tree four]

即它适用于多个重复参数,但不适用于逗号分隔。

如何改进上述脚本以解析多个参数,包括逗号分隔以在结果中获取此(无逗号):

[one two tree four]

?

【问题讨论】:

    标签: go command-line-arguments


    【解决方案1】:

    修改Set 方法,使其以逗号分隔参数并将结果附加到接收者。

    func (i *arrayFlags) Set(value string) error {
        s := strings.Split(value, ",")
        for i := range s {
            s[i] = strings.TrimSpace(s[i])
        }
        *i = append(*i, s...)
        return nil
    }
    

    【讨论】:

    • 谢谢你的例子。我有更新的脚本 (play.golang.org/p/JhK3_em8WrE) 但收到“13:7: undefined: strings”、“15:16: undefined: strings”错误。
    • @HeiligOleg strings 是一个包,你需要导入它才能使用它,就像你导入 flagfmt 一样。
    猜你喜欢
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 2016-06-22
    • 1970-01-01
    相关资源
    最近更新 更多