Ich habe Probleme mit etwas, das einfach sein sollte. Ich arbeite an etwas, das das ausgezeichnete cli
Paket von codegansta verwendet, aber ich versuche, auf eine Eigenschaft von einer verschachtelten Struktur zuzugreifen und zu scheitern.Zugriffsfeld in verschachtelten Strukturen
Als Beispiel habe ich:
func Something() []cli.Flag {
return []cli.Flag{
cli.StringFlag{
Name: awesome
Usage: "be awesome"
},
cli.StringFlag{
Name: awesome2
},
<etc.>
}
Ich habe eine Funktion, die in der zurück flags []cli.Flag
nimmt und versucht, aus dem String-Wert von Name
für jedes Mitglied zu drucken, aber ich kann nicht für den Zugriff scheinen der verschachtelte Inhalt im Slice. Was ist der richtige Weg, dies zu tun?
EDIT: Hier ist, was ich tat, mit Zusätzen von Mayank ausgezeichneter Antwort
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)
}
Ich erhalte ein index out of range
Laufzeitfehler jetzt, aber ich denke, das ist etwas, was ich falsch mache.
Können Sie uns zeigen, was Sie versucht haben, damit wir es optimieren können, um es Ihnen zu zeigen? –