亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

在go語言中安裝與使用protobuf的方法詳解

2020-04-01 19:04:15
字體:
來源:轉載
供稿:網友

簡介

本文主要給大家介紹了關于golang/118371.html">go語言安裝使用protobuf的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。

protobuf是Google開發出來的一個語言無關、平臺無關的數據序列化工具,在rpc或tcp通信等很多場景都可以使用。通俗來講,如果客戶端和服務端使用的是不同的語言,那么在服務端定義一個數據結構,通過protobuf轉化為字節流,再傳送到客戶端解碼,就可以得到對應的數據結構。這就是protobuf神奇的地方。并且,它的通信效率極高,“一條消息數據,用protobuf序列化后的大小是json的10分之一,xml格式的20分之一,是二進制序列化的10分之一”。

安裝

編譯安裝protobuf的編譯器protoc

  wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz  tar zxvf protobuf-2.6.1.tar.gz  cd protobuf-2.6.1./configure  make  make install

        執行 protoc  -h 查看安裝是否成功

安裝插件 protoc-gen-go,它是一個go程序,編譯它之后將可執行文件執行路徑寫入環境變量

go get github.com/golang/protobuf/protoc-gen-go

獲取proto包

go get github.com/golang/protobuf/proto

在go中使用

protobuf的使用方法是將數據結構寫入到.proto文件中,使用protoc編譯器編譯(間接使用了插件)得到一個新的go包,里面包含go中可以使用的數據結構和一些輔助方法。

編寫test.proto文件

 package example;  enum FOO { X = 17; };  message Test {  required string label = 1;  optional int32 type = 2 [default=77];  repeated int64 reps = 3;  optional group OptionalGroup = 4 {  required string RequiredField = 5;  } }

    編譯:

    執行 protoc --go_out=. *.proto 生成 test.pb.go 文件

    將test.pb.go文件放入example文件夾(對應上面package)中,作為example包

try

 package main import (  "log"  "github.com/golang/protobuf/proto"  "example" ) func main() {  test := &example.Test {   Label: proto.String("hello"),   Type: proto.Int32(17),   Reps: []int64{1, 2, 3},   Optionalgroup: &example.Test_OptionalGroup {    RequiredField: proto.String("good bye"),   },  }  data, err := proto.Marshal(test)  if err != nil {   log.Fatal("marshaling error: ", err)  }  newTest := &example.Test{}  err = proto.Unmarshal(data, newTest)  if err != nil {   log.Fatal("unmarshaling error: ", err)  }  // Now test and newTest contain the same data.  if test.GetLabel() != newTest.GetLabel() {   log.Fatalf("data mismatch %q != %q", test.GetLabel(), newTest.GetLabel())  }  //test.GetOptionalgroup().GetRequiredField()  //etc }

一些對應關系

  • message Test對為 struct 結構,其屬性字段有了對應的get方法,在go中可以使用test.GetLabel()test.GetType()獲取test對象的屬性
  • OptionalGroup對應為 struct中的內嵌struct
  • proto文件中repeated屬性對于slice結構
  • test.Reset()可以使其所有屬性置為0值
  • 使用Marshal和Unmarshal可以輕松的編碼和解碼

這些只是一些特性,想要仔細研究可以查看github上的wiki:https://github.com/golang/protobuf

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久国产精品久久久| 久久久久一本一区二区青青蜜月| 日韩av在线资源| 69国产精品成人在线播放| 日韩免费黄色av| 日本久久久久亚洲中字幕| 亚洲小视频在线| 欧美一级视频一区二区| 日韩av电影在线免费播放| 日韩av成人在线| 91精品视频网站| 久久久噜噜噜久久| 成人精品视频99在线观看免费| 亚洲精品日韩丝袜精品| 国产精品久久久久久一区二区| 欧美日韩另类字幕中文| 久久视频在线直播| 亚洲va久久久噜噜噜| 亚洲精品电影在线观看| 亚洲第一天堂无码专区| 亚洲精品短视频| 色婷婷综合久久久久中文字幕1| 日韩av成人在线观看| 欧美性猛交xxxxx免费看| 亚洲国产精品中文| 亚洲最大的免费| 久久久在线免费观看| 欧美亚洲国产成人精品| 国产精品人成电影在线观看| 51色欧美片视频在线观看| 91精品国产色综合| www亚洲精品| 欧美国产日韩一区二区在线观看| 91精品国产高清久久久久久| 亚洲免费伊人电影在线观看av| 欧美日韩国产精品一区二区不卡中文| 3344国产精品免费看| 精品亚洲精品福利线在观看| 亚洲字幕一区二区| 久久综合五月天| 久久久久久av| 色偷偷9999www| 欧美午夜宅男影院在线观看| 韩国三级日本三级少妇99| 欧美大胆a视频| 中文字幕国产亚洲2019| 91亚洲精品久久久久久久久久久久| 亚洲福利在线视频| 国模吧一区二区三区| 夜夜嗨av一区二区三区免费区| 日韩成人在线视频| 欧美视频在线观看免费网址| 日韩影视在线观看| 久久久久久久久久国产| 韩日精品中文字幕| 色综合色综合久久综合频道88| 国产精品欧美日韩一区二区| 亚洲永久在线观看| 久久亚洲精品中文字幕冲田杏梨| 姬川优奈aav一区二区| 中文字幕日韩av综合精品| 亚洲精品欧美一区二区三区| 亚洲人成在线免费观看| 在线看欧美日韩| 91影视免费在线观看| 国产精品视频一区国模私拍| 国产欧洲精品视频| 国产91精品久久久久久久| 亚洲精品中文字| 国产一区二区三区在线看| 少妇高潮久久久久久潘金莲| 欧美综合激情网| 欧美日韩国产精品一区二区三区四区| 免费不卡在线观看av| 91精品国产91久久久久久久久| 日韩av免费在线看| 成人黄色在线播放| 色偷偷噜噜噜亚洲男人| 日韩视频免费在线| 久久av资源网站| 欧美福利视频在线| 91中文字幕一区| 91久久精品国产91久久性色| 亚洲视屏在线播放| 伊人男人综合视频网| 日韩中文字幕网| www高清在线视频日韩欧美| 亚洲天堂男人天堂女人天堂| 日韩网站免费观看高清| 精品香蕉在线观看视频一| 欧美午夜精品在线| 亚洲精品小视频在线观看| 欧美色另类天堂2015| 97视频在线观看播放| 亚洲qvod图片区电影| 狠狠色狠狠色综合日日五| 91久久久久久久久久久| 欧美国产精品人人做人人爱| 欧美人交a欧美精品| 欧美日韩性视频在线| 清纯唯美日韩制服另类| 欧美另类第一页| 国产亚洲欧美视频| 国内精品久久久| 欧美日韩福利在线观看| 91精品在线国产| 色综合影院在线| 亚洲伊人第一页| 欧美日韩第一视频| 欧美激情一区二区三区久久久| 国模精品视频一区二区| 日韩中文字幕不卡视频| 日韩精品免费一线在线观看| 在线国产精品视频| 精品色蜜蜜精品视频在线观看| 精品久久久久久久久久久久| 久久久亚洲国产天美传媒修理工| 91国偷自产一区二区三区的观看方式| 国产成人a亚洲精品| 色老头一区二区三区| 欧美激情区在线播放| 欧美午夜视频在线观看| 国产日韩欧美另类| 一区二区三区日韩在线| 欧美成人久久久| 日韩经典一区二区三区| 国产精品女人网站| 久久精品99久久久久久久久| 97在线看福利| 亚洲欧洲美洲在线综合| 成人亚洲激情网| 国产一区私人高清影院| 日韩亚洲一区二区| 久久天堂av综合合色| 亚洲一区二区三区乱码aⅴ蜜桃女| 成人黄色网免费| 国产欧洲精品视频| 亚洲国模精品私拍| 日韩av在线影视| 亚洲综合色av| 国产美女精品免费电影| 欧美午夜片欧美片在线观看| 亚洲天堂男人天堂女人天堂| 亚洲精品免费在线视频| 国产精品久久999| 久久精品免费电影| 性欧美视频videos6一9| 亚洲视频在线视频| 国产极品精品在线观看| 国内伊人久久久久久网站视频| 国产精品中文字幕在线| 国产日韩在线精品av| 国产精品久久久久7777婷婷| 国产精品久久久久9999| 国产精品久久91| 国产精品视频色| 91国产美女在线观看| 91久久久久久国产精品| 在线观看视频亚洲| 日韩免费在线视频| 在线观看欧美成人| 国产成人精品电影| 久久久爽爽爽美女图片| 久久的精品视频|