Ho problemi con qualcosa che dovrebbe essere semplice. Sto lavorando a qualcosa che utilizza l'eccellente pacchetto cli
di codegangsta, ma sto provando ad accedere a una proprietà da una struttura nidificata e fallendo.Campo di accesso nelle strutture nidificate
Per fare un esempio, ho:
func Something() []cli.Flag {
return []cli.Flag{
cli.StringFlag{
Name: awesome
Usage: "be awesome"
},
cli.StringFlag{
Name: awesome2
},
<etc.>
}
ho una funzione che prende in restituita flags []cli.Flag
e cerca di stampare il valore stringa di Name
per ogni membro, ma non riesco ad accedere il contenuto annidato nella sezione. Qual è il modo corretto di farlo?
EDIT: Ecco quello che ho fatto, con aggiunte di ottima risposta di Mayank
func PrintFlagsForDriver(name string) error {
for driverName := range drivers {
if name == driverName {
driver := drivers[driverName]
flags := driver.GetCreateFlags()
stringFlag, ok := flags[0].(cli.StringFlag)
if ok {
fmt.Println(stringFlag.Name)
}
}
}
return fmt.Errorf("Driver %s not found", name)
}
sto ricevendo un errore di runtime index out of range
ora, ma penso che sia un'altra cosa che sto facendo male.
Puoi mostrarci cosa hai provato in modo che possiamo modificarlo per mostrarti? –