<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                > 各服務端之間的通訊經常會用到protobuf,因為它比json這些更加的快速高效 [TOC] ## 安裝編譯器 ### 安裝protoc編譯器 > 可在https://github.com/protocolbuffers/protobuf/releases 下載最新安裝包 ~~~ // 請自行將zip轉換成tar.gz wget https://github.com/protocolbuffers/protobuf/releases/download/v3.11.2/protoc-3.11.2-linux-x86_64.zip tar zxvf protoc-3.11.2-linux-x86_64.tar.gz ~~~ > 配置環境變量 ~~~ vim ~/.bash_profile // 將/opt/protoc/bin加入到環境變量中 // 將go 安裝的bin插件配置到環境變量中,可通過go env查看GOPATH=/root/go/,如 /root/go/bin // 如 PATH=$PATH:$HOME/bin:/opt/protoc/bin:/opt/go/bin:/root/go/bin source ~/.bash_profile ~~~ ### go 安裝編譯器插件 > 此處go的安裝步驟過濾,可參考go的安裝篇 > 安裝執行可以安裝go的國內鏡像,這樣安裝插件更加快速穩定 ~~~ # 啟用 Go Modules 功能 go env -w GO111MODULE=on # 配置鏡像 go env -w GOPROXY=https://goproxy.cn # 查看是否生效 go env | grep GOPROXY ~~~ > 安裝編譯器插件 ~~~ go get -u github.com/golang/protobuf/protoc-gen-go ~~~ ## 創建pb測試文件 (test.proto) > 頭部需指定是proto2還是proto3,有些第三方提供的是沒有包含,需要顯示指定 > vim /opt/pbtest/test.proto ~~~ //syntax = "proto2"; syntax = "proto3"; package myapi; // 字段都是用1,2,3這樣的方式進行索引標識,等轉換成PHP的類的時候,通過getXXFiled()的時候,則是根據這個索引標識進行獲取 message Person { int32 id = 1; string name = 2; string email = 3; double money = 4; bool is_rich = 5; } message player_login { int32 user_id = 1; string token = 2; }; ~~~ > 當前目錄執行:`protoc --go_out=. *.proto`即可生成對應的go執行文件 ## 進行代碼測試 ~~~ package main import ( "fmt" "github.com/golang/protobuf/proto" "websocket_test/myapi" ) func main() { person := &myapi.Person{} person.Id = 112 person.Name = "www" person.Email = "www@qq.com" person.Money = 11 person.IsRich = true fmt.Println("Students信息為:",person) // 序列化 buffer, _ := proto.Marshal(person) fmt.Println("序列化之后的信息為:",buffer) // 反序列化 data:=&myapi.Person{} proto.Unmarshal(buffer,data) fmt.Println("反序列化之后的信息為:",data) } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看