猿问

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

我有以下非常简单的代码来在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)

        }

    }

}


心有法竹
浏览 290回答 2
2回答

呼啦一阵风

看看你的数据存储代码......它以某种方式将值与键一起存储。该声明Logf("Persist %s=%s", x, e.Value)正在生产:2013/10/13 23:21:26 DEBUG: Persist [38913371956013078496870267859 19124562091635092830747528895]=%s(MISSING)这意味着您的 'x' 值有一部分键和一些其他值(从您的文本看来,它似乎是前一个键值)。缺少实际值……这就是%s(MISSING)位的含义
随时随地看视频慕课网APP

相关分类

Go
我要回答