1package pflag 2 3import "fmt" 4 5// -- string Value 6type stringValue string 7 8func newStringValue(val string, p *string) *stringValue { 9 *p = val 10 return (*stringValue)(p) 11} 12 13func (s *stringValue) Set(val string) error { 14 *s = stringValue(val) 15 return nil 16} 17 18func (s *stringValue) String() string { return fmt.Sprintf("%s", *s) } 19 20// StringVar defines a string flag with specified name, default value, and usage string. 21// The argument p points to a string variable in which to store the value of the flag. 22func (f *FlagSet) StringVar(p *string, name string, value string, usage string) { 23 f.VarP(newStringValue(value, p), name, "", usage) 24} 25 26// Like StringVar, but accepts a shorthand letter that can be used after a single dash. 27func (f *FlagSet) StringVarP(p *string, name, shorthand string, value string, usage string) { 28 f.VarP(newStringValue(value, p), name, shorthand, usage) 29} 30 31// StringVar defines a string flag with specified name, default value, and usage string. 32// The argument p points to a string variable in which to store the value of the flag. 33func StringVar(p *string, name string, value string, usage string) { 34 CommandLine.VarP(newStringValue(value, p), name, "", usage) 35} 36 37// Like StringVar, but accepts a shorthand letter that can be used after a single dash. 38func StringVarP(p *string, name, shorthand string, value string, usage string) { 39 CommandLine.VarP(newStringValue(value, p), name, shorthand, usage) 40} 41 42// String defines a string flag with specified name, default value, and usage string. 43// The return value is the address of a string variable that stores the value of the flag. 44func (f *FlagSet) String(name string, value string, usage string) *string { 45 p := new(string) 46 f.StringVarP(p, name, "", value, usage) 47 return p 48} 49 50// Like String, but accepts a shorthand letter that can be used after a single dash. 51func (f *FlagSet) StringP(name, shorthand string, value string, usage string) *string { 52 p := new(string) 53 f.StringVarP(p, name, shorthand, value, usage) 54 return p 55} 56 57// String defines a string flag with specified name, default value, and usage string. 58// The return value is the address of a string variable that stores the value of the flag. 59func String(name string, value string, usage string) *string { 60 return CommandLine.StringP(name, "", value, usage) 61} 62 63// Like String, but accepts a shorthand letter that can be used after a single dash. 64func StringP(name, shorthand string, value string, usage string) *string { 65 return CommandLine.StringP(name, shorthand, value, usage) 66} 67