interface
dialogCommands
을 반복하려고하는데 이는 slice
입니다. 정상적으로 반복 할 수 있으며 Println
을 각 Index
에 입력하면 map
이됩니다. 그러나,이 map
유형 struct
을 갖는 것으로 인쇄되는맵 조각을 반영하여 각 맵은 struct 유형입니까?
if reflect.TypeOf(dialogCommands).Kind() == reflect.Slice {
commands := reflect.ValueOf(dialogCommands)
for i:=0; i<commands.Len(); i++ {
v := commands.Index(i)
fmt.Println(reflect.TypeOf(v).Kind())
fmt.Println(v)
}
이것의 출력은 볼 수있는 바와 같이, 타입이 struct
이지만 출력이 map
이다
struct
map[options:[a b c]]
struct
map[startDialogs:[dialog1]]
이다. keys
을 반복하는 방법은 v
입니까?
가 여기 다음 Println
그것이 map
업데이트 말한다 동안 유형 reflect.Value
의 때문에 난 그냥이지도를 취급 할 수없는, 그래서 그것을 반복 할 수있는 방법이 필요하지만, 당신이 보는대로 kind
는 struct
입니다 Dialog
구조
type Dialog struct {
Dialog bson.Raw `json:"dialog" bson:"dialog"`
}
및 dialogCommands
가 interface{}
dialogCommands의 정의를 포함시켜야합니다. 무엇보다도 Go Playground에서 실행되는 완벽한 Go 프로그램이 https://play.golang.org/에서 실행됩니다. –
@ ZanLynx 더 나은 정보로 업데이트되었는데, 충분하다고 생각합니까? –
글쎄, 나를 파고 들기에 충분하지 않다. 나는 모든 종류의 지원 코드를 써야하고 이미 직업을 가지고있다. 어쩌면 너는 다른 누군가와 운이 좋을 것이다. –