fix the mappings-with-commas example
This commit is contained in:
parent
a84487a43a
commit
1e81bb6866
|
@ -95,15 +95,18 @@ func Example_mappings() {
|
||||||
// output: map[john:123 mary:456]
|
// output: map[john:123 mary:456]
|
||||||
}
|
}
|
||||||
|
|
||||||
type commaSeparated map[string]string
|
type commaSeparated struct {
|
||||||
|
M map[string]string
|
||||||
|
}
|
||||||
|
|
||||||
func (c commaSeparated) UnmarshalText(b []byte) error {
|
func (c *commaSeparated) UnmarshalText(b []byte) error {
|
||||||
|
c.M = make(map[string]string)
|
||||||
for _, part := range strings.Split(string(b), ",") {
|
for _, part := range strings.Split(string(b), ",") {
|
||||||
pos := strings.Index(part, "=")
|
pos := strings.Index(part, "=")
|
||||||
if pos == -1 {
|
if pos == -1 {
|
||||||
return fmt.Errorf("error parsing %q, expected format key=value", part)
|
return fmt.Errorf("error parsing %q, expected format key=value", part)
|
||||||
}
|
}
|
||||||
c[part[:pos]] = part[pos+1:]
|
c.M[part[:pos]] = part[pos+1:]
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -111,13 +114,13 @@ func (c commaSeparated) UnmarshalText(b []byte) error {
|
||||||
// This example demonstrates arguments with keys and values separated by commas
|
// This example demonstrates arguments with keys and values separated by commas
|
||||||
func Example_mappingWithCommas() {
|
func Example_mappingWithCommas() {
|
||||||
// The args you would pass in on the command line
|
// The args you would pass in on the command line
|
||||||
os.Args = split("./example --m one=two,three=four")
|
os.Args = split("./example --values one=two,three=four")
|
||||||
|
|
||||||
var args struct {
|
var args struct {
|
||||||
M commaSeparated
|
Values commaSeparated
|
||||||
}
|
}
|
||||||
MustParse(&args)
|
MustParse(&args)
|
||||||
fmt.Println(args.M)
|
fmt.Println(args.Values.M)
|
||||||
// output: map[one:two three:four]
|
// output: map[one:two three:four]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue