Я не мог найти ответ на этот вопрос, хотя я искал документацию и примеры Go. Возможно ли динамическое преобразование интерфейса обратно в его оригинальный тип? Я знаю, что могу сделать что-то вроде этого:Golang: литой интерфейс возвращается к исходному типу
var myint int = 5
var myinterface interface{}
myinterface = myint
recovered, _ := myinterface.(int)
fmt.Println(recovered)
Но здесь я знаю тип. Я хотел бы иметь карту неизвестных типов (интерфейсов) и повергли их обратно с помощью отражения, как это:
// put/pop writes/read to/from a map[string]interface{}
var myint int = 5
put("key" myint)
pop("key", &myint) // this should also work for objects or any other type
, как это было бы по возможности хранить все в одной карте. Тип будет передан пользователем при вызове pop() (второй аргумент - это интерфейс). Можно ли добиться этого с помощью рефлексии?
Именно то, что я искал. Спасибо :) – Kugel