我正在使用flag模块来解析我的标志,但希望至少有一个位置参数。如果没有足够的位置参数,我如何显示使用帮助,就像在parser.error
的python中一样?
目前,我手动调用os.Exit
,但这应该是一个简单的错误真的很麻烦:
package main
import "flag"
import "fmt"
import "os"
func main() {
flag.Parse()
if flag.NArg() != 1 {
println("This program needs exactly one argument")
flag.Usage()
os.Exit(2)
}
fmt.Printf("You entered %d characters", len(flag.Args()[0]))
}
答案 0 :(得分:2)
要做这样的事情,我使用log
包。
package main
import "flag"
import "fmt"
import "os"
import "log"
func main() {
flag.Parse()
if flag.NArg() != 1 {
log.Fatalln("This program needs exactly one argument")
}
fmt.Printf("You entered %d characters", len(flag.Args()))
}
log.Fatal()
并且它的姐妹方法(log.Fatalln()
,log.Fatalf()
等)都是帮助者,他们只需log.Print()
,然后使用os.exit(1)
跟进。< / p>
编辑 - 添加链接 http://golang.org/pkg/log/#Fatalln