7.4 Parsing Flags with flag.Value
In this section, we’ll see how another standard interface,
flag.Value
, helps us define new notations for command-line flags.
Consider the program below, which sleeps for a specified period of time.
var period = flag.Duration("period", 1*time.Second, "sleep period") func main() { flag.Parse() fmt.Printf("Sleeping for %v...", *period) time.Sleep(*period) fmt.Println() }
Before it goes to sleep it prints the time period.
The fmt
package calls the time.Duration
’s String
method to print the period not as a number of nanoseconds, but in a
user-friendly notation:
$ go build gopl.io/ch7/sleep $ ./sleep Sleeping for 1s...
By default, the sleep period is one second, ...
Get The Go Programming Language now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.