October 2015
Beginner to intermediate
400 pages
14h 44m
English
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, ...