为什么我的存储实体使用默认值?

时间:2013-04-19 11:28:38

标签: google-app-engine go

我说

data := Thing {
    date:     time.Now().UnixNano()   
    name:     "foo",
    value:    5,
}
_, err := datastore.Put(c, datastore.NewIncompleteKey(c, "stuff", nil), &data)
if err != nil {
    http.Error(w, err.Error(), http.StatusInternalServerError)
    return
}

存储的内容是{0, "", 0}。我希望看到像{1366370653722376000, "foo", 5}这样的东西。我做错了什么?

注意:我使用的是dev appserver。

1 个答案:

答案 0 :(得分:7)

您必须导出要在包外显示的名称。要实现这一点,您必须使用任何Unicode大写字母(ASCII大写字母是子集)作为其第一个字母,例如Date代替dateName代替name等。

如果不这样,datastore.Put就无法“看到”(使用反射)字段。