我在一些应该很简单的事情上遇到了麻烦。我正在研究使用 codegangsta 的优秀cli包的东西,但我试图从嵌套结构访问一个属性并且失败了。
例如,我有:
func Something() []cli.Flag {
return []cli.Flag{
cli.StringFlag{
Name: awesome
Usage: "be awesome"
},
cli.StringFlag{
Name: awesome2
},
<etc.>
}
我有一个函数接收返回的值flags []cli.Flag并尝试打印出Name每个成员的字符串值,但我似乎无法访问切片中的嵌套内容。这样做的正确方法是什么?
编辑:这就是我所做的,加上 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)
}
我现在遇到index out of range运行时错误,但我认为这是我做错的另一件事。
相关分类