Я играю с GAE, Go и хранилищем данных.У меня есть следующие структуры:
type Coinflip struct {
Participants []*datastore.Key
Head string
Tail string
Done bool
}
type Participant struct {
Email string
Seen datastore.Time
}
(Для тех, кому интересно, я храню Participants
в качестве фрагмента из Key
указателей, потому что Go автоматически не разыменовывает объекты.)
Теперь яхочу найти Participant
с конкретным Email
адресом, связанным с ноу-хау Coinflip
.Вот так (это работает):
coinflip, _ := find(key_as_string, context)
participants, _ := coinflip.fetchParticipants(context) /* a slice of Participant*/
var found *Participant
for i := 0; i < len(participants) && found == nil; i++ {
if participants[i].Email == r.FormValue("email") {
found = &participants[i]
}
}
(*found).Seen = datastore.SecondsToTime(time.Seconds())
Как сохранить *found
в хранилище данных?Мне нужен ключ, но связь между структурой Participant
и Key
очень слабая.
Я не уверен, как действовать дальше.Нужно ли возвращать ключи также из звонка fetchParticipants
?Реализация Java и Python GAE кажется немного проще (просто вызовите put()
для объекта).
Заранее спасибо,