structtags: add description to Unpack()
This commit is contained in:
parent
6fa8a44943
commit
efffa11257
2 changed files with 9 additions and 1 deletions
|
@ -1,6 +1,6 @@
|
||||||
# structtags
|
# structtags
|
||||||
|
|
||||||
Ускорьте функцию `Unpack()`, про которую рассказывали на лекции (https://p.go.manytask.org/08-reflect/lecture.slide#19).
|
Ускорьте функцию `Unpack()`.
|
||||||
|
|
||||||
Ваша функция должна работать быстрее, чем бейзлайн + 20%.
|
Ваша функция должна работать быстрее, чем бейзлайн + 20%.
|
||||||
```
|
```
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue