Skip to content
This repository has been archived by the owner on Jun 9, 2023. It is now read-only.

konorlevich/golang-webservices-2-8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Функция 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, а именно оригинальные данные, до который вы доковырялись через нужные методы рефлекта
  • Если вы в функции используете какие-то имена структур, которые встречаются в стесте - это не правильно

Releases

No releases published

Packages

No packages published

Languages