如何解析 Golang 中的参数列表(多个重复和逗号分隔)?

时间:2021-07-08 10:48:30

标签: go command-line-arguments

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

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

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

[one, two tree four]

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

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

[one two tree four]

1 个答案:

答案 0 :(得分:2)

修改 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
}