我正在将一个最初用 Python 编写的现有 GAE 应用程序移植到 Go。到目前为止,它非常棒而且相当容易(尽管它并非没有怪癖)。
由于此端口将部署到不同版本上的同一个 GAE 应用程序,因此两个版本将共享相同的数据存储。问题在于原始 Python 应用程序大量使用了 db.GeoPt 类型。
我在我的一种类型上实现了我自己的自定义 PropertyLoadSaver,因此我可以通过反射查看如何在 Go 中表示 db.GeoPt。但显然 db.GeoPt 的内存布局与 Go 中的任何东西都不兼容。有人知道我会怎么做吗?以前有人这样做过吗?
这里有一些代码可以让你们更好地了解我在做什么:
func (sS *SomeStruct) Load(c <-chan datastore.Property) error {
for p := range c {
if p.Name == "location" { // "location" is the name of the original db.GeoPt property
v := reflect.ValueOf(p.Value) // If I call v.Kind(), it returns reflect.Invalid
// And yes, I know v is declared and never used :P
}
}
return nil
}
先感谢您!
慕的地10843
相关分类