Голанг получить значения из интерфейса {}
Я перебираю результаты, полученные из couchDB.View, и извлекаю ключ.
for _, row := range rows {
fmt.Printf("%v, %T\n", row.Key, row.Key)
}
Результат этого:
[nh001 mgr], []interface {}
[nh002 nh], []interface {}
Мне нужно прочитать через этот интерфейс и получить 2-е значение ("mgr" или "nh").
Я не могу повторить это, поскольку это не карта.
1 ответ
Решение
Я предполагаю, что ваша ценность row.Key
возвращается откуда-то как interface{}
?
Если да, то в вашем range rows
вы можете попробовать привести его к типу []interface{}
, Так что ваш код должен выглядеть примерно так.
for _, row := range rows {
if val, ok := row.Key.([]interface{}); ok {
fmt.Println(val[1])
}
}