package main import ( "fmt" "github.com/juju/gnuflag" ) func main() { var name string fs := gnuflag.NewFlagSet("hello", gnuflag.ContinueOnError) fs.StringVar(&name, "name", "world", "set your name") if err := fs.Parse(true, []string{"--name", "Alice"}); err != nil { fmt.Printf("Error: %v", err) } fmt.Printf("Hello, %s!\n", name) }
package main import ( "fmt" "github.com/juju/gnuflag" ) func main() { var fruits []string fs := gnuflag.NewFlagSet("fruits", gnuflag.ContinueOnError) fs.StringSliceVar(&fruits, "fruit", []string{}, "set your favorite fruit") if err := fs.Parse(true, []string{"--fruit", "apple", "--fruit", "banana"}); err != nil { fmt.Printf("Error: %v", err) } fmt.Printf("Your favorite fruits are %v.\n", fruits) }In this example, we define a "fruit" flag and associate it with a string slice variable. We then parse two command line arguments and add "apple" and "banana" to the fruits slice. Finally, we print out the fruits.