Можно ли использовать приватные поля в моделях с go-pg?

Скажем, я хочу сделать что-то вроде:

package users

struct User {
  id     int64  `pg:",pk"`
  handle string
}

func NewUser(string handle) *User {
  return &User{0, handle}
}

func (u *User) GetID() int64 { return u.id }

func (u *User) GetHandle() string { return u.handle }
func (u *User) SetHandle(h string) { u.handle = h }

А затем использовать User пример с go-pg:

bob = users.NewUser(`bob`)
db.Insert(bob)

Это возможно? Я вижу все примеры в go-pg wiki и документах, использующих открытые поля. Кроме того, я нигде не вижу, что указано это требование.

Я считаю, что это тот случай, когда можно читать, но не писать частные поля в структуре, но, возможно, с некоторым умным использованием хуков модели, определенных в users Пакет это будет возможно?

0 ответов

Другие вопросы по тегам