Mam problem z czymś, co powinno być proste. Pracuję nad czymś, co używa doskonałego pakietu codegangsta's cli
, ale próbuję uzyskać dostęp do właściwości z zagnieżdżonej struktury i nie działa.Pole dostępu w zagnieżdżonych strukturach
Jako przykład mam:
func Something() []cli.Flag {
return []cli.Flag{
cli.StringFlag{
Name: awesome
Usage: "be awesome"
},
cli.StringFlag{
Name: awesome2
},
<etc.>
}
Mam funkcję, która pobiera w zwróconym flags []cli.Flag
i próbuje wydrukować wartości string Name
dla każdego członka, ale nie może wydawać się, aby uzyskać dostęp zagnieżdżona zawartość w plasterku. Jaki jest właściwy sposób robienia tego?
EDIT: Oto co zrobiłem, z dodatkami z doskonałą odpowiedzią Mayank za
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)
}
Dostaję błąd index out of range
wykonawczego teraz, ale myślę, że to coś innego robię źle.
Czy możesz pokazać nam, co próbujesz, abyśmy mogli go ulepszyć, aby Ci pokazać? –