如何在Golang中将值列表放入标志中?

What is Golang's equivalent of the below python commands ?

import argparse
parser = argparse.ArgumentParser(description="something")
parser.add_argument("-getList1",nargs='*',help="get 0 or more values")
parser.add_argument("-getList2",nargs='?',help="get 1 or more values")

I have seen that the flag package allows argument parsing in Golang. But it seems to support only String, Int or Bool. How to get a list of values into a flag in this format :

go run myCode.go -getList1 value1 value2 

Use flag.String() to get the entire list of values for the argument you need and then split it up into individual items with strings.Split().

You can define your own flag.Value and use flag.Var() for binding it.

The example is here.

Then you can pass multiple flags like following:

go run your_file.go --list1 value1 --list1 value2

UPD: including code snippet right there just in case.

package main

import "flag"

type arrayFlags []string

func (i *arrayFlags) String() string {
    return "my string representation"
}

func (i *arrayFlags) Set(value string) error {
    *i = append(*i, value)
    return nil
}

var myFlags arrayFlags

func main() {
    flag.Var(&myFlags, "list1", "Some description for this param.")
    flag.Parse()
}

You can at least have a list of arguments on the end of you command by using the flag.Args() function.

package main

import (
    "flag"
    "fmt"
)

var one string

func main() {
    flag.StringVar(&one, "o", "default", "arg one")
    flag.Parse()
    tail := flag.Args()
    fmt.Printf("Tail: %+q
", tail)
}

my-go-app -o 1 this is the rest will print Tail: ["this" "is" "the" "rest"]