Golang flag.Bool()函数及示例
Go语言为命令行解析提供了内置的支持,并提供了可用于使用flag包定义与命令行程序一起使用的标志(flag)的函数。该包提供了 flag.Bool() 函数,用于使用指定的名称、默认值和用法字符串定义布尔标志。
语法:
func Bool(name string, value bool, usage string) *bool
参数: 此函数接受三个上述提到并描述的参数:
- name: 它是一个指定用于标志的名称的字符串。
- value: 它是一个布尔值,指定标志要使用的默认值。
- usage: 它是一个字符串,指定要显示的用法或帮助消息。
返回值: 它返回一个地址,指定存储定义的标志的值的布尔变量。
下面的程序说明了 flag.Bool() 函数:
示例1:
// 用Golang编写程序说明flag.Bool()函数
package main
import (
"flag"
"fmt"
)
func main() {
// 定义一个布尔标志
boolArgPtr := flag.Bool("arg1", false, "这是一个布尔参数")
// 将命令行解析为定义的标志
flag.Parse()
fmt.Println("Bool Arg:", *boolArgPtr)
}
输出:
- 指定标志值
“`go go run ex1.go -arg1=true
Bool Arg: true</li>
</ul><pre><code class=" line-numbers"><br /> * **未指定标志值(默认值)**
go run ex1.go
“`go
Bool Arg: false
示例2:
// 用Golang编写程序说明flag.Bool()函数 package main import ( "flag" "fmt" ) func main() { // 定义多个布尔参数 plainArgPtr := flag.Bool("plaintext", false, "启用纯文本") jsonArgPtr := flag.Bool("json", false, "启用JSON") csvArgPtr := flag.Bool("csv", false, "启用 CSV") // 将命令行解析为定义的标志 flag.Parse() fmt.Println("Enable plaintext:", *plainArgPtr) fmt.Println("Enable JSON:", *jsonArgPtr) fmt.Println("Enable CSV:", *csvArgPtr) }输出:
- 指定一些标志值
“`go go run ex2.go -plaintext=true -csv=true
Enable plaintext: true
Enable JSON: false
Enable CSV: true</li>
</ul><pre><code class=" line-numbers"><br /> * **未指定任何标志值(默认值)**
go run ex2.go
“`go
Enable plaintext: false
Enable JSON: false
Enable CSV: false
- 指定一些标志值
极客教程