google-app-engine - GAE Go - 如何将私有(private)变量放入数据存储区?

标签 google-app-engine go google-cloud-datastore private

我正在编写 Google App Engine Golang 应用程序。我想要一个带有私有(private)变量的struct,这些变量只能通过适当的函数设置,例如:

type Foo struct {
    bar string
}

func (f *Foo) SetBar(b string) {
    f.bar = "BAR: "+b
}

我希望能够将此数据保存在数据存储区中。但是,数据存储区似乎没有保存私有(private)变量。

如何在数据存储中存储私有(private)变量?

最佳答案

如果你的类型实现了 PropertyLoadSaver interface 就可以:

func (f *Foo) Save (c chan<- datastore.Property) error {
    defer close(c)

    c <- datastore.Property {
        Name: "bar",
        Value: f.bar,
    }

    return nil
}

func (f *Foo) Load(c <-chan datastore.Property) error {
    for property := range c {
        switch property.Name {
        case "bar":
            f.bar = property.Value.(string)
        }
    }
    return nil
}

缺点是您需要手动加载/保存所有属性,因为您不能使用数据存储包方法。

关于google-app-engine - GAE Go - 如何将私有(private)变量放入数据存储区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24687556/

相关文章:

google-app-engine - 如何在页面刷新时使 Angular 2 路由与 App Engine 一起工作?

go - 如何将 JSON 对象验证为无序列表?

java - 查询 Cloud Datastore 中的嵌入式实体

google-app-engine - 如何通过ndb数据库(python)中的查询删除记录?

java - 改进 GoogleAppEngine Spring Web 应用程序启动时间

python - 如何在 GAE 上捕获 Python 中的 DNS 查找失败错误?

google-app-engine - Google Cloud Datastore 控制台 - 服务不可用 503

json - 如何在Go中显示来自API的JSON响应?

google-app-engine - 如何在 AppEngine 上的 Go 中包含第 3 方库?

java - 在 App Engine Java Servlet 中查询数据存储区统计信息时出现 NullpointerException