我正在使用flag模块来解析我的标志,但希望至少有一个位置参数。当没有足够的位置参数时,如何显示使用帮助,就像在 python 中使用 parser.error
一样?
目前,我正在手动调用 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]))
}
最佳答案
为了执行此类操作,我使用 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)
。
编辑--添加链接 http://golang.org/pkg/log/#Fatalln
关于go - 在命令行解析中引发自定义错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19543011/