DescriptionFlags: add user-defined flag types. The change is really no code; it's just publishing
the set() method and add() functions. But we rename add() to Var() for consistency.
Also rename FlagValue to Value for simplicity.
Also, delete the check for multiple settings for a flag. This makes it possible to
define a flag that collects values, such as into a slice of strings.
type flagVar []string
func (f *flagVar) String() string {
return fmt.Sprint(v)
}
func (f *flagVar) Set(value string) bool {
if v == nil {
v = make(flagVar, 1)
} else {
nv := make(flagVar, len(v)+1)
copy(nv, v)
v = nv
}
v[len(v)-1] = value
return true
}
var v flagVar
func main() {
flag.Var(&v, "testV", "multiple values build []string")
flag.Parse()
fmt.Printf("v = %v\n", v)
}
Patch Set 1 #Patch Set 2 : code review 842041: Flags: add user-defined flag types. The change is reall... #Patch Set 3 : code review 842041: Flags: add user-defined flag types. The change is reall... #
MessagesTotal messages: 3
|