鉴于这个简单的 Go 程序,它只需要一个命令行参数,我该如何改进它以flag.Usage()提供有用的输出?
package main
import (
"flag"
"fmt"
"os"
)
func main() {
flag.Parse()
if len(flag.Args()) == 0 {
flag.Usage()
os.Exit(1)
}
args := flag.Args()
fmt.Println(args[0])
}
没有给出参数的当前输出:
$ ./args
Usage of ./args:
(即usage 为空,因为我找不到告诉usage() 函数需要哪些参数的方法)。
我可以将flag.Usage()其删除并替换为以下内容:
fmt.Fprintln(os.Stderr, "Usage:", os.Args[0], "<argument>")
但是,如果flag.Usage(). 特别是因为它已经在处理可选参数:
$ ./args -foo
flag provided but not defined: -foo
Usage of ./args:
相关分类