我正在编写 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/