Tôi đang gặp sự cố với nội dung nào đó đơn giản. Tôi đang làm việc trên một cái gì đó sử dụng tuyệt vời của codegangsta cli
gói, nhưng tôi đang cố gắng truy cập vào một tài sản từ một cấu trúc lồng nhau và thất bại.Trường truy cập trong các cấu trúc lồng nhau
Như một ví dụ, tôi có:
func Something() []cli.Flag {
return []cli.Flag{
cli.StringFlag{
Name: awesome
Usage: "be awesome"
},
cli.StringFlag{
Name: awesome2
},
<etc.>
}
Tôi có một chức năng mà mất trong sự trở lại flags []cli.Flag
và cố gắng để in ra chuỗi giá trị của Name
cho mỗi thành viên, nhưng tôi dường như không thể truy cập nội dung lồng nhau trong slice. Cách thích hợp để làm điều này là gì?
EDIT: Đây là những gì tôi đã làm, với những bổ sung từ câu trả lời tuyệt vời Mayank của
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)
}
Tôi nhận được một lỗi runtime index out of range
bây giờ, nhưng tôi nghĩ đó là cái gì khác tôi đang làm sai.
Bạn có thể cho chúng tôi thấy những gì bạn đã cố gắng để chúng tôi có thể tinh chỉnh nó để hiển thị cho bạn không? –