mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 03:06:41 +08:00
@@ -41,7 +41,7 @@ func main() {
|
|||||||
|
|
||||||
flag 包有一个扩展功能用来解析命令行选项。但是通常被用来替换基本常量,例如,在某些情况下我们希望在命令行给常量一些不一样的值。(参看 19 章的项目)
|
flag 包有一个扩展功能用来解析命令行选项。但是通常被用来替换基本常量,例如,在某些情况下我们希望在命令行给常量一些不一样的值。(参看 19 章的项目)
|
||||||
|
|
||||||
在 flag 包中一个 Flag 被定义成一个含有如下字段的结构体:
|
在 flag 包中有一个 Flag 被定义成一个含有如下字段的结构体:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
type Flag struct {
|
type Flag struct {
|
||||||
@@ -89,7 +89,7 @@ func main() {
|
|||||||
`flag.Parse()` 扫描参数列表(或者常量列表)并设置 flag, `flag.Arg(i)` 表示第i个参数。`Parse()` 之后 `flag.Arg(i)` 全部可用,`flag.Arg(0)` 就是第一个真实的 flag,而不是像 `os.Args(0)` 放置程序的名字。
|
`flag.Parse()` 扫描参数列表(或者常量列表)并设置 flag, `flag.Arg(i)` 表示第i个参数。`Parse()` 之后 `flag.Arg(i)` 全部可用,`flag.Arg(0)` 就是第一个真实的 flag,而不是像 `os.Args(0)` 放置程序的名字。
|
||||||
|
|
||||||
`flag.Narg()` 返回参数的数量。解析后 flag 或常量就可用了。
|
`flag.Narg()` 返回参数的数量。解析后 flag 或常量就可用了。
|
||||||
`flag.Bool()` 定义了一个默认值是 `false` 的 flag:当在命令行出现了第一个参数(这里是 "n"),flag 被设置成 `true`(NewLine 是 `*bool` 类型)。flag 被解引用到 `*NewLine`,所以当值是 `true` 时将添加一个 newline("\n")。
|
`flag.Bool()` 定义了一个默认值是 `false` 的 flag:当在命令行出现了第一个参数(这里是 "n"),flag 被设置成 `true`(NewLine 是 `*bool` 类型)。flag 被解引用到 `*NewLine`,所以当值是 `true` 时将添加一个 Newline("\n")。
|
||||||
|
|
||||||
`flag.PrintDefaults()` 打印 flag 的使用帮助信息,本例中打印的是:
|
`flag.PrintDefaults()` 打印 flag 的使用帮助信息,本例中打印的是:
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ C
|
|||||||
对于 `flag.Bool` 你可以设置布尔型 flag 来测试你的代码,例如定义一个 flag `processedFlag`:
|
对于 `flag.Bool` 你可以设置布尔型 flag 来测试你的代码,例如定义一个 flag `processedFlag`:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
var processedFlag = flag.Bool(“proc”, false, “nothing processed yet”)
|
var processedFlag = flag.Bool("proc", false, "nothing processed yet")
|
||||||
```
|
```
|
||||||
|
|
||||||
在后面用如下代码来测试:
|
在后面用如下代码来测试:
|
||||||
@@ -123,7 +123,7 @@ if *processedFlag { // found flag -proc
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
要给 flag 定义其它类型,可以使用 `flag.Int()`,`flag.Float64`,`flag.String()`。
|
要给 flag 定义其它类型,可以使用 `flag.Int()`,`flag.Float64()`,`flag.String()`。
|
||||||
|
|
||||||
在第 15.8 章你将找到一个具体的例子。
|
在第 15.8 章你将找到一个具体的例子。
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user