4
我一直在使用這種加載實體,仍然有可用的鍵:GetAll:鍵和實體保證是以相同的順序?
type Post struct {
Title string
Created time.Time
// ...
key *datastore.Key
}
func All(c appengine.Context) (*[]Post, error) {
var p []Post
q := datastore.NewQuery("Post").Order("-Created")
k, err := q.GetAll(c, &p)
if err != nil {
return nil, err
}
for i := 0; i < len(p); i++ {
p[i].key = k[i]
}
return &p, nil
}
然後它發生,我想如果我能一直相信k
會以相同的順序爲p
(即,k[0]
始終是p[0]
的關鍵)?如果我理解正確the appengine-go source暗示它會,因爲兩個切片都使用append構建。當然似乎工作。
我在做什麼安全?有沒有更好的辦法?
謝謝,感謝。 – 2013-03-04 06:29:45