我有以下非常简单的代码来在datastore. 我已经从各种datastore例子中把它汇总起来,但我仍然对它不满意。它的目的只是将一个字符串存储在一个键下persist并在 下检索它fromPresistence。// Used to store the string value.type Entity struct { Value string}// Grow my key.func key(x string) *datastore.Key { return datastore.NewKey(context, "Persist", x, 0, nil)}// Get it from persistence storage.func fromPersistence(x string) string { var persisted string = x // Make my key. k := key(x) // New entity for filling in. e := new(Entity) // Look it up! if err := datastore.Get(context, k, e); err == nil { // It was there! persisted = e.Value context.Debugf("Persisted %s=%s", x, persisted) } return persisted}// Persist the latest number.func persist(x string) func(*big.Int) { return func(n *big.Int) { // Make my key. k := key(x) // New entity for filling in. e := new(Entity) // Value is the decimal form of the number. e.Value = n.String() context.Debugf("Persist %s=%s", start, e.Value) if _, err := datastore.Put(context, k, e); err != nil { context.Debugf("Persist failed! %s", err) } }}
2 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
看看你的数据存储代码......它以某种方式将值与键一起存储。
该声明
Logf("Persist %s=%s", x, e.Value)
正在生产:
2013/10/13 23:21:26 DEBUG: Persist [38913371956013078496870267859 19124562091635092830747528895]=%s(MISSING)
这意味着您的 'x' 值有一部分键和一些其他值(从您的文本看来,它似乎是前一个键值)。
缺少实际值……这就是%s(MISSING)
位的含义
- 2 回答
- 0 关注
- 289 浏览
添加回答
举报
0/150
提交
取消