程序开发 · 2023年9月15日

Proto3 如何处理双维数组?

知识点掌握了,还需要不断练习才能熟练运用。下面GOLANG给大家带来一个GOLANG开发实战,手把手教大家学习《Proto3 如何处理双维数组?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!,
,
proto3双维数组转换map的解决方案,proto3不支持多维数组。但其well-known types中的value、listvalue、struct支持任意json。多维数组可以用嵌套的listvalue实现,但数组结构无法在proto文件中体现。,在给出的示例中,viper可能无法自动处理以下结构:,因为proto3没有多维数组类型,innerarray错误地被转换成了map。,解决方案是使用well-known types:,其中,valuearray是一个任意json数组的proto表示。在go代码中,valuearray会被转换为[]interface{}类型。你可以自己遍历和处理这个数组。,需要注意的是,使用well-known types后,proto文件中tool_item message的结构将丢失。,今天关于《Proto3 如何处理双维数组?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注GOLANG公众号!,proto3双维数组转换map的解决方案,知识点掌握了,还需要不断练习才能熟练运用。下面GOLANG给大家带来一个GOLANG开发实战,手把手教大家学习《Proto3 如何处理双维数组?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!,

当前位置: > > > > Proto3 如何处理双维数组?

Proto3 如何处理双维数组?

2024-11-23 09:58:03
0浏览
收藏

知识点掌握了,还需要不断练习才能熟练运用。下面GOLANG给大家带来一个GOLANG开发实战,手把手教大家学习《Proto3 如何处理双维数组?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

proto3双维数组转换map的解决方案

proto3不支持多维数组。但其well-known types中的value、listvalue、struct支持任意json。多维数组可以用嵌套的listvalue实现,但数组结构无法在proto文件中体现。

在给出的示例中,viper可能无法自动处理以下结构:

type configreply_array2d struct {
    innerarray []*configreply_toolitem `protobuf:"bytes,1,rep,name=inner_array,json=innerarray,proto3" json:"inner_array,omitempty"`
}

因为proto3没有多维数组类型,innerarray错误地被转换成了map。

解决方案是使用well-known types:

message Array2D {
    ValueArray value_array = 1;
}

其中,valuearray是一个任意json数组的proto表示。在go代码中,valuearray会被转换为[]interface{}类型。你可以自己遍历和处理这个数组。

需要注意的是,使用well-known types后,proto文件中tool_item message的结构将丢失。

今天关于《Proto3 如何处理双维数组?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注GOLANG公众号!

减少右键菜单选项 win11关闭右键显示更多选项的方法教程
ROG幻X怎么重装Win11系统 ROG幻X重装系统Win11的图文教程