补充 Usage 方法.
Signed-off-by: rick.chan <chenyang@autoai.com>
This commit is contained in:
parent
a061d5ac4f
commit
b9322b4e66
|
@ -77,7 +77,41 @@ flag.DurationVar(&delay, "d", 0, "时间间隔")
|
|||
|
||||
Flag 解析在第一个非 flag 参数(单个”-“不是 flag 参数)之前停止,或者在终止符”–“之后停止。
|
||||
|
||||
### 3.4.flag 其他函数
|
||||
### 3.4.flag.Usage
|
||||
|
||||
golang 编译的二进制文件的 help 输出实质上 是调用的 flag.Usage() 方法, 而该方法是一个变量, 接受一个闭包, 源码如下:
|
||||
|
||||
```go
|
||||
// <go src>/src/flag/flag.go:580
|
||||
var Usage = func() {
|
||||
fmt.Fprintf(CommandLine.Output(), "Usage of %s:\n", os.Args[0])
|
||||
PrintDefaults()
|
||||
}
|
||||
```
|
||||
|
||||
所以你可以直接覆盖掉 flag的 Usage 方法来修改, 例如这样:
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func init(){
|
||||
flag.Usage = usage
|
||||
flag.Parse()
|
||||
}
|
||||
|
||||
func usage(){
|
||||
fmt.Print("nginx version v1.12")
|
||||
}
|
||||
|
||||
func main(){}
|
||||
```
|
||||
|
||||
### 3.5.flag 其他函数
|
||||
|
||||
```go
|
||||
flag.Args() // 返回命令行参数后的其他参数,以 []string 类型
|
||||
|
|
Loading…
Reference in New Issue