structtags: add description to Unpack()

This commit is contained in:
Denis Tarasov 2020-08-20 01:26:37 +03:00 committed by Fedor Korotkiy
parent 6fa8a44943
commit efffa11257
2 changed files with 9 additions and 1 deletions

View file

@ -1,6 +1,6 @@
# structtags # structtags
Ускорьте функцию `Unpack()`, про которую рассказывали на лекции (https://p.go.manytask.org/08-reflect/lecture.slide#19). Ускорьте функцию `Unpack()`.
Ваша функция должна работать быстрее, чем бейзлайн + 20%. Ваша функция должна работать быстрее, чем бейзлайн + 20%.
``` ```

View file

@ -17,6 +17,14 @@ func NewUnpacker() *Unpacker {
return &Unpacker{} return &Unpacker{}
} }
// Функция Unpack присваивает значения параметров из url query в поля переданной структуры.
// Для этого сначала в первом создается map,
// где ключи -- названия параметров из url query,
// а значения -- "ссылки" на соответствующие поля структуры.
// В следующем цикле поля структуры заполняются соответствующими
// значениями из url query.
func (u *Unpacker) Unpack(req *http.Request, ptr interface{}) error { func (u *Unpacker) Unpack(req *http.Request, ptr interface{}) error {
if err := req.ParseForm(); err != nil { if err := req.ParseForm(); err != nil {
return err return err