¿Cómo obtener una lista de valores en una bandera en Golang?
(2)
Puede definir su propio flag.Value
y usar flag.Var()
para enlazarlo.
El ejemplo está here .
Luego puedes pasar varias banderas como las siguientes:
go run your_file.go --list1 value1 --list1 value2
UPD: incluye un fragmento de código justo por si acaso.
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()
}
¿Cuál es el equivalente de Golang de los siguientes comandos de python?
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")
He visto que el paquete de bandera permite el análisis de argumentos en Golang. Pero parece que solo soporta String, Int o Bool. Cómo obtener una lista de valores en una bandera en este formato:
go run myCode.go -getList1 value1 value2
Use flag.String() para obtener la lista completa de valores para el argumento que necesita y luego strings.Split() en elementos individuales con strings.Split() .