go语言的protoc包
go get -u github.com/golang/protobuf/protoc-gen-go
test.proto
syntax = "proto2";
package example;
message test {
required int32 id = 1;
required string name = 2;
required int32 age = 3;
}
生成go文件
protoc --go_out=./example test.proto
main.go
package main
import (
"awesomeProject2/example"
"fmt"
"github.com/golang/protobuf/proto"
"log"
)
func main() {
t := &example.Test{
Id: proto.Int32(3),
Name: proto.String("haha"),
Age: proto.Int32(24),
}
// 序列化
data, err := proto.Marshal(t)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%s\n", data)
fmt.Println(len(data))
// 反序列化
var newData example.Test
if err := proto.Unmarshal(data, &newData); err != nil {
log.Fatal(err)
}
fmt.Println(newData.GetName())
fmt.Println(newData.GetId())
fmt.Println(newData.GetAge())
}