Функция interfaсe2struct
i2s - interface to struct. Функция, которая заполняет значения структуры из map[string]interface{} и подобных - того что получается, если распаковать json в interface{} (см. пример в json/dynamic.go)
Задание на работу с рефлексией.
Не смотря на некую мудрённость на первый взгляд - рефлексия применяется очень часто. Понимать как она работает и как вам с ней работать очень пригодится в дальнейшем.
Реализация занимает 80-100 строк кода
Из типов данных достаточно предусмотреть те, что есть в тесте.
Запускать go test -v
Код писать в файле i2s.go
Подсказки:
- Все нужные вам функции есть в пакете reflect - https://golang.org/pkg/reflect/ - внимательно читайте документацию
- json распаковывает int во float. Это указано в документации, не бага. В данном случае будет корректно приводить к инту, если нам встретился флоат
- Проверяйте всегда что вам приходит на вход. И смотрите, что вы передаёте в функцию (да, рекурсия тут себя хорошо показывает) не reflect.Value, а именно оригинальные данные, до который вы доковырялись через нужные методы рефлекта
- Если вы в функции используете какие-то имена структур, которые встречаются в стесте - это не правильно