为了账号安全,请及时绑定邮箱和手机立即绑定

数据存储持久性是其中之一

数据存储持久性是其中之一

Go
心有法竹 2021-06-29 13:49:44
我有以下非常简单的代码来在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)位的含义


查看完整回答
反对 回复 2021-07-05
  • 2 回答
  • 0 关注
  • 289 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信