下面的python命令与Golang的等价物是什么?
import argparse
parser = argparse.ArgumentParser(description="something")
parser.add_argument("-getList1",nargs='*',help="get 0 or more values")
parser.add_argument("-getList2",nargs='?',help="get 1 or more values")
我已经看到flag包允许在Golang中进行参数解析。但它似乎只支持String、Int或Bool。如何将值列表转换为以下格式的标志:
go run myCode.go -getList1 value1 value2
发布于 2015-02-04 14:00:21
您可以定义自己的flag.Value
并使用flag.Var()
进行绑定。
here就是一个例子。
然后您可以传递多个标志,如下所示:
go run your_file.go --list1 value1 --list1 value2
UPD:包括代码片段,以防万一。
package main
import "flag"
type arrayFlags []string
func (i *arrayFlags) String() string {
return "my string representation"
}
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()
}
发布于 2018-12-07 15:23:28
通过使用flag.Args()
函数,您至少可以在命令的末尾包含一个参数列表。
package main
import (
"flag"
"fmt"
)
var one string
func main() {
flag.StringVar(&one, "o", "default", "arg one")
flag.Parse()
tail := flag.Args()
fmt.Printf("Tail: %+q\n", tail)
}
my-go-app -o 1 this is the rest
将打印Tail: ["this" "is" "the" "rest"]
发布于 2015-02-04 13:57:20
使用flag.String()获取所需参数的整个值列表,然后使用strings.Split()将其拆分成单独的项。
https://stackoverflow.com/questions/28322997
复制相似问题