发现已经有protocbuf对go的支持了,特此来尝试一下。
1.首先得安装protocbuff的go的支持包
我采用源码安装在自己工程下
hg clone https://code.google.com/p/goprotobuf/
然后 make 就可以了
如果出现不能make 的请在命令行下go env看看当前的GO_PATH是否有你当前的工程路径,没有则添加
成功后在你的工程的bin 和 pkg下会安装成功protoc 对go的支持。
为了方便,我把protoc 和protoc-gen-go拷到了/usr/local/bin下
2.编写test.proto文件
package code.blackbeans.com;
message User{
required int32 uid = 1;
required string name = 2;
}
使用protoc --go_out=. xxx.proto
自己的目录下就会有对应的xxx.pb.go生成
go install xxx.pb.go
这样就可以在自己的.go文件中使用了
3.
package main
import entry "code.blackbeans.com"
import proto "code.google.com/p/goprotobuf/proto"
import (
"fmt"
"log"
)
func main() {
user := &entry.User{
Uid: proto.Int32(1),
Name: proto.String("blackbeans"),
}
encObj, err := proto.Marshal(user)
if nil == err {
fmt.Println("length:", len(encObj))
tobj := &entry.User{}
e := proto.Unmarshal(encObj, tobj)
if nil == e {
fmt.Println(tobj.GetName())
} else {
log.Fatalln("decode fail ", e)
}
} else {
log.Fatalln("encode fail", err)
}
}
输出结果:
blackbeans-mac:main Xmx$ go run main.go
length: 14
blackbeans
分享到:
相关推荐
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
半成品A Go game written in golang(Semi-finished).zip Java语言写的围棋小游戏。半成品A Go game written in golang(Semi-finished).zip Java语言写的围棋小游戏。半成品A Go game written in golang(Semi-...
本文将详细探讨“golang-linux-arm64 SDK”,揭示其核心特性和使用方法,帮助开发者更好地理解和利用这个强大的工具。 一、golang-linux-arm64 SDK简介 golang-linux-arm64 SDK是Go语言针对Linux操作系统和ARM64...
要使用golang-neo4j-bolt-driver,首先需要解压下载的zip文件,然后在Go项目中通过import导入库,并按照提供的示例代码建立连接、执行Cypher查询和管理事务。 六、示例代码 ```go package main import ( "fmt" ...
3. **数据格式**:Golang和OpenSSL可能在编码或存储密文时使用了不同的格式,如是否包含填充位,或者是否在密文中包含了IV。 为了解决这个问题,我们可以采取以下步骤: 1. **密钥处理**:确保使用像PBKDF2这样的...
golang-stats-api-handler, Golang cpu,内存,gc等信息api处理程序 golang-stats-api-handlerGolang cpu,内存,gc等信息api处理程序。 安装go get github.com/fukata/golang-stats-api-handler示
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
官方离线安装包,亲测可用。使用rpm -ivh [rpm完整包名] 进行安装
DTM分布式事务Golang使用案例-go-zero业务代码
开源项目-alaska-golang-ref-sheet.zip,alaska/golang-ref-sheet: A golang quick reference sheet. Your one stop concurrency shop!
开源项目-dkondratovych-golang-ua-meetup.zip,Presentation about Context in Go 1.7. Review, examples, thoughts.
DTM分布式事务Golang使用案例-DTM服务端代码
最新intellij ieda golang 插件2013-11-27日编译
golang-github-pmezard-go-difflib-unit-test-devel-0-0.9.git792786c.1.el7.x86_64 官方离线安装包,亲测可用
Api-golang-gin-realworld-example-app.zip,使用golang gingolang/gin代码库构建的示例性真实世界应用程序,包含遵循真实世界规范和api的真实世界示例(crud、auth、高级模式等)。,一个api可以被认为是多个软件设备...
golang-github-streadway-amqp-unit-test-devel-0-0.3.20190404git75d898a.el7.x86_64.rpm官方离线安装包,亲测可用
golang-hex-dumper 一个简单的十六进制转储库例程,用于需要深入研究二进制文件的诊断。 以十六进制显示字节。 随附gohexdump目录中的示例命令行工具。 go get github.com/glycerine/golang-hex-dumper/... ...
Golang_Puzzlers-新年主题资源
Golang WebAssembly异步加载程序从Golang生成WASM程序包,并提供一个用于处理它的异步接口安装npm install --save-dev golang-wasm-async-loader 这是用于的加载器,用于从生成 (又名WASM)包。 然后为webpack生成...
golang-github-davecgh-go-spew-devel-0-0.11.git6d21280.1.el7.noarch.rpm 官方离线安装包,亲测可用