Почему не связываются данные ajax json для моего пользовательского типа структуры?
Мой env:
функция связывания go
/**
* function : Model Init
*/
func modelInit(c echo.Context) tetrisModel.Tetris {
tetris := tetrisModel.DefaultInit()
if err := c.Bind(tetris); err != nil {
c.Logger().Error(err)
}
return *tetris
}
вызов моделиInit
func Control(c echo.Context) tetrisModel.Tetris {
tetris := modelInit(c)
fmt.Println("=======================")
fmt.Println(c.FormValue("nowBlockPositionX"))
fmt.Println(tetris.NowBlockPositionX) // do not printing, why?
fmt.Println("=======================")
// ... ... other code... ...
}
результат:
fmt.Println(c.FormValue("nowBlockPositionX"))
> работает
fmt.Println(tetris.NowBlockPositionX)
не работает / не печатает, почему? (без привязки)
Надеюсь, этот код напечатает '3'
DefaultInit ()
func DefaultInit() *Tetris {
tetris := new(Tetris)
// some default data setting...
return tetris
}
код модели тетрис
type Tetris struct {
NowBlockPositionX int `form:"nowBlockPositionX" json:"nowBlockPositionX"`
NowBlockPositionY int `form:"nowBlockPositionY" json:"nowBlockPositionY"`
NowBlock map[string]int `form:"nowBlock" json:"nowBlock"`
// other data exists...
}
AJAX JSON данных (тип POST)
{
nowBlockPositionX: 3
, nowBlockPositionY: 0
, nowBlock: {L: 0}
// other data exists...
}
Я понимаю, что если у типа структуры go есть литеральная строка (например: form:"nowBlock" json:"nowBlock"
), то структура автоматически связывается ('функция связывания'). не так ли?