Reputation: 3014
I have read the docs for the following two libraries used to create flags. :
And have not come across a way to do optional flags. How can this be done?
According to the code from https://gobyexample.com/command-line-flags :
package main
import "flag"
import "fmt"
func main() {
boolPtr := flag.Bool("fork", false, "a bool")
fmt.Println("fork:", *boolPtr)
}
and executed by : $ ./command-line-flags -fork
Should result in true, this is the behavior I desire but I am getting false on my machine.
Any guidance would be appreciated, Thanks
Upvotes: 8
Views: 14317
Reputation: 121119
You must parse the flags after all flags are defined and before flags are accessed:
func main() {
boolPtr := flag.Bool("fork", false, "a bool")
flag.Parse() // add this line
fmt.Println("fork:", *boolPtr)
}
With this change, the fork
flag will work as desire.
Upvotes: 21