Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要带go标志的位置参数_Go_Arguments_Command Line Interface - Fatal编程技术网

需要带go标志的位置参数

需要带go标志的位置参数,go,arguments,command-line-interface,Go,Arguments,Command Line Interface,我正在用go编写一个CLI工具,并选择github.com/jessevdk/go-flags进行CLI arg解析。我正在试图找出使位置arg成为必填项的最佳方法。目前,我有以下几点: func main() { args, err := flags.Parse(&opts) if err != nil { panic(err) } if len(args) < 1 { panic("An s3 bucket is

我正在用go编写一个CLI工具,并选择github.com/jessevdk/go-flags进行CLI arg解析。我正在试图找出使位置arg成为必填项的最佳方法。目前,我有以下几点:

func main() {
    args, err := flags.Parse(&opts)
    if err != nil {
        panic(err)
    }

    if len(args) < 1 {
        panic("An s3 bucket is required")
    }
}
func main(){
args,err:=flags.Parse(&opts)
如果错误!=零{
恐慌(错误)
}
如果len(args)<1{
惊慌失措(“需要一个s3存储桶”)
}
}

这是可行的,但它不会导致显示帮助输出,就像标记为
“required:true”
的标志一样。有没有一种方法可以通过手动调用“打印帮助”函数或设置所需数量的位置参数来复制该行为?

使用os.Args帮助可以吗?例如:

package main

import (
    "fmt"
    "os"
)

const Usage = `Usage:
%s one two
`

func main() {

    if len(os.Args) != 3 {
        fmt.Printf(Usage, os.Args[0])
        os.Exit(-1)
    }

    //run program
}
Args保存命令行参数,以程序名开头