google-app-engine - 为什么我的存储实体使用默认值?

标签 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} 的内容。我做错了什么?

注意:我使用的是开发应用服务器。

最佳答案

您必须导出您希望在包外可见的名称。要实现这一点,您必须使用任何 Unicode 大写字母类(ASCII 大写字母是一个子集)作为它的首字母,例如Date 而不是 dateName 而不是 name,等等

否则 datastore.Put 无法“看到”(使用反射)字段。

关于google-app-engine - 为什么我的存储实体使用默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16103571/

相关文章:

google-app-engine - 适用于多种环境的 Google Cloud App Engine app.yaml

go - 从文件名中删除路径

go - 通过 SetDeadline() 为 TCP 监听器设置超时

go - 为什么用goroutines for循环会导致数据丢失

go - 我怎样才能在 gin url 中有一个带斜杠的参数

unit-testing - Google App Engine 数据存储 - 测试查询失败

java - 如何使用java更新谷歌应用引擎中数据存储的字段值

python - 如何在 Google App Engine 中打印?

java - 没有注册类 'com.sun.proxy.$Proxy33' - GAE 端点上的 BadRequest

go - 如何从 Go 中的 nslookup 获取 "Name"?