Golang flag.FlagSet.VisitAll() function example

package flag

VisitAll visits the flags in lexicographical order, calling fn for each. It visits all flags, even those not set.

Golang flag.FlagSet.VisitAll() function usage example

 package main

  import (
 "flag"
 "fmt"
  )



  func main() {
 f := flag.NewFlagSet("flag", flag.ExitOnError)
 f.Int("int", 0, "int flag with value")
 f.Int("int2", 0, "second int flag with value")

 visitor := func(a *flag.Flag) {
 fmt.Println(">", a.Name, "value=", a.Value)
 }


 fmt.Println("First visit")
 f.Visit(visitor) // no value assigned

 f.Parse([]string{"-int", "108"}) // visit flag set earlier and assign value

 fmt.Println("Second visit")
 f.Visit(visitor)

 fmt.Println("Visit All")
 f.VisitAll(visitor) // this will display the int2 flag

  }

Output :

First visit

Second visit

> int value= 108

Visit All

int value= 108

int2 value= 0

Reference :

http://golang.org/pkg/flag/#FlagSet.VisitAll

Advertisement