Есть ли способ перечислить ключи в context.Context? - PullRequest
0 голосов
/ 28 февраля 2019

Итак, у меня есть context.Context (https://golang.org/pkg/context/) переменная со мной, есть ли способ, чтобы я мог перечислить все ключи, которые эта переменная содержит?

1 Ответ

0 голосов
/ 28 февраля 2019

Нет, нет способа перечислить все ключи context.Context.Потому что этот тип просто интерфейс.Так что это значит?

В общем случае переменные могут содержать конкретный тип или интерфейс.Переменная с типом интерфейса не имеет никакой конкретной информации о типе.Так что не имеет значения, если интерфейс пуст (interface{}) или context.Context.Потому что они могут быть разных типов, которые реализуют этот интерфейс.Переменная не имеет конкретного типа.Это просто что-то абстрактное.

Если вы используете отражение, вы можете наблюдать поля и все методы типа, который установлен в этой переменной (с типом интерфейса).Но логика реализации метода Value(key interface{}) interface{} не является фиксированной.Это не обязательно должна быть карта.Вы также можете сделать реализацию со срезами, базой данных, собственным типом хеш-таблицы, ...

Так что нет общего способа перечислить все значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...