补充 Usage 方法.

Signed-off-by: rick.chan <chenyang@autoai.com>
This commit is contained in:
rick.chan 2020-10-13 14:03:14 +08:00
parent a061d5ac4f
commit b9322b4e66
1 changed files with 35 additions and 1 deletions

View File

@ -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 类型