Go language provides inbuilt support for command-line parsing and has functions that could be used to define flags to be used with a command-line program using the
C
Output:
C
Output
flag package. This package provides the flag.Bool() function which is used to define a boolean flag with the specified name, default value, and usage string.
Syntax:
func Bool(name string, value bool, usage string) *boolParameters: This function accepts three parameters as mentioned above and described below:
- name: It is a string that specifies the name to be used for the flag.
- value: It is a boolean value that specifies the default value to be used by the flag.
- usage: It is a string that specifies the usage or help message to be shown for the flag.
// Golang program to illustrate
// the flag.Bool() Function
package main
import (
"flag"
"fmt"
)
func main() {
// Define a bool flag
boolArgPtr := flag.Bool("arg1", false, "This is a bool argument")
// Parse command line
// into the defined flags
flag.Parse()
fmt.Println("Bool Arg:", *boolArgPtr)
}
- Specifying the flag value
$ go run ex1.go -arg1=true Bool Arg: true
- Not specifying the flag value (Default Value)
$ go run ex1.go Bool Arg: false
// Golang program to illustrate
// the flag.Bool() Function
package main
import (
"flag"
"fmt"
)
func main() {
// Define multiple bool arguments
plainArgPtr := flag.Bool("plaintext", false, "Enable plaintext")
jsonArgPtr := flag.Bool("json", false, "Enable JSON")
csvArgPtr := flag.Bool("csv", false, "Enable CSV")
// Parse command line into the defined flags
flag.Parse()
fmt.Println("Enable plaintext:", *plainArgPtr)
fmt.Println("Enable JSON:", *jsonArgPtr)
fmt.Println("Enable CSV:", *csvArgPtr)
}
- Specifying some flag values
$ go run ex2.go -plaintext=true -csv=true Enable plaintext: true Enable JSON: false Enable CSV: true
- Not specifying any flag value (Default Values)
$ go run ex2.go Enable plaintext: false Enable JSON: false Enable CSV: false