MSp*_*Dev 3 arrays properties go google-cloud-datastore google-cloud-platform
我正在尝试使用 GoLang 中的 PropertyList 将 int64 数组保存到数据存储区。
我知道您可以在数据存储中存储数组,尤其是基元数组。所以当我尝试通过 PropertyList 插入它时,我不确定我做错了什么。我的所有其他属性都得到正确保存(它们只是单个基元)。数组导致了这个问题。
解决了!感谢@mkopriva的帮助。
如果要保存任何受支持的数据存储区数据类型的数组,则必须将该数组的每个元素追加到新interface{}数组中。
值字段文档
我编写了这个反射函数来处理任何切片类型:
src := []int64{1, 2, 3, 4, 5}
value := reflect.ValueOf(src)
kind := value.Kind()
switch kind {
case reflect.Slice:
interfaceArr := make([]interface{},0)
for i := 0; i < value.Len(); i++ {
interfaceArr = append(interfaceArr, value.Index(i).Interface())
}
return interfaceArr
}
Run Code Online (Sandbox Code Playgroud)