Голанг получить значения из интерфейса {}

Я перебираю результаты, полученные из 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])
    }
}
Другие вопросы по тегам