如何使用 Go 的标志包打印位置参数的用法?

鉴于这个简单的 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:


翻阅古今
浏览 178回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go