当前位置: 首页 > news >正文

网站开发研究前景2345网址导航高级版

网站开发研究前景,2345网址导航高级版,wordpress月亮花园,公司官方网站一般什么公司做往期回顾#xff1a; Go语言开发小技巧易错点100例#xff08;一#xff09;Go语言开发小技巧易错点100例#xff08;二#xff09;Go语言开发小技巧易错点100例#xff08;三#xff09;Go语言开发小技巧易错点100例#xff08;四#xff09;Go…往期回顾 Go语言开发小技巧易错点100例一Go语言开发小技巧易错点100例二Go语言开发小技巧易错点100例三Go语言开发小技巧易错点100例四Go语言开发小技巧易错点100例五Go语言开发小技巧易错点100例六Go语言开发小技巧易错点100例七 本期看点技巧类用【技】表示易错点用【易】表示 JSON Marshal和Proto Marshal在Protobuf Message结构体上使用的不同【易】channel方式代替time.Sleep()方法【技】 正文开始 JSON Marshal和Proto Marshal在gRPC Message上使用的不同 我们先定义一个Proto Buffer文件内容为一个Message有两个属性其中一个属性为string类型一个为onef类型 syntax proto3;option go_package /test;package cmd;message UserInfo {string name 1;oneof address {string school_addr 2;string home_addr 3;} }接下来我们编译成pb.go文件 protoc -I. --go_out.. ./hello.proto具体编译后的结构体 type UserInfo struct {state protoimpl.MessageStatesizeCache protoimpl.SizeCacheunknownFields protoimpl.UnknownFieldsName string protobuf:bytes,1,opt,namename,proto3 json:name,omitempty// Types that are assignable to Address:// *UserInfo_SchoolAddr// *UserInfo_HomeAddrAddress isUserInfo_Address protobuf_oneof:address }// ...type UserInfo_SchoolAddr struct {SchoolAddr string protobuf:bytes,2,opt,nameschool_addr,jsonschoolAddr,proto3,oneof }// ...type UserInfo_HomeAddr struct {HomeAddr string protobuf:bytes,3,opt,namehome_addr,jsonhomeAddr,proto3,oneof }然后我们写两个测试方法 方法一JSON Marshl的方式序列化结构体 func TestJSONMarshal(t *testing.T) {u : UserInfo{Name: zs,Address: UserInfo_HomeAddr{HomeAddr: Beijing},}marshal, _ : json.Marshal(u)fmt.Println(string(marshal))var u2 UserInfo_ json.Unmarshal(marshal, u2)fmt.Println(u2) }结果 方法二Proto Marshal的方式序列化结构体 func TestProtoMarshal(t *testing.T) {u : UserInfo{Name: zs,Address: UserInfo_HomeAddr{HomeAddr: Beijing},}marshal, _ : proto.Marshal(u)fmt.Println(string(marshal))var u2 UserInfo_ proto.Unmarshal(marshal, u2)fmt.Println(u2) }结果 对比上述的结果我们会发现有些不同 序列化后的内容不同JSON Marshal序列化后的内容可读性较高但是内容占用空间多反序列化时Proto Marshal的方式能够自动识别oneof类型的属性 因此我们得出结论在直接序列化Message时最好使用Proto Marshal的方式进行序列化防止特殊的属性不能够识别而且该序列化的方式更加节省空间缺点则是序列化的结果可读性不高。 channel方式代替time.Sleep()方法 最新发现的新操作直接上代码 func TestSleep(t *testing.T) {-time.After(time.Second) // 相当于time.Sleep(time.Second)}本期到此结束~
http://www.w-s-a.com/news/744199/

相关文章:

  • .net网站架设凯里网站建设哪家好
  • seo网站建站建站国外百元服务器
  • 家具网站开发设计论文企业网站里面的qq咨询怎么做
  • 网站视频提取软件app淘宝店购买网站
  • 站长之家域名解析做百度推广网站咱们做
  • 行业 网站 方案莱州网站建设公司电话
  • 丹东谁做微网站威海网络科技有限公司
  • 寻找网站建设_网站外包自助打印微信小程序免费制作平台
  • 台式机网站建设vk社交网站做婚介
  • 创建网站得花多少钱网站建设的技术路线
  • 图书馆网站建设汇报免费编程软件哪个好用
  • 手机搭建网站工具网站搜索引擎优化的基本内容
  • 网站快速排名二手交易网站开发技术路线
  • 官方网站开发公司施工企业会计王玉红课后答案
  • 网站建设能用手机制作吗网站建设所需物资
  • 阜阳做网站的公司阳江招聘网最新消息
  • 织梦可以做哪些类型型网站wordpress 融资
  • 建设银行手机银行官方网站下载安装腾讯企点账户中心
  • 品牌设计网站有哪些商务网站建设平台
  • 新增网站备案时间什么是软件外包产业
  • 张家界做网站买了网站模版怎么做
  • 六安品牌网站建设怎么样知名商城网站建设报价
  • 怎么上传自己做的网站杭州网站建设公司平台
  • 网站开发程序是什么知名的电子商务网站
  • 做pc端网站好么平台推广是什么意思
  • 农业信息网站建设意义淘宝官网首页网址
  • 重庆网站设计公司价格贵阳网站建设app开发
  • dw做网站怎么换图片编写网页所用的语言是
  • 外贸网站收录工具个人网站的备案
  • 正规的网站建设工作室海外高延迟服务器做网站