05 2018 档案

摘要:何时使用值类型 1.如果接受者是一个 map,func 或者 chan,使用值类型(因为它们本身就是引用类型)。2.如果接受者是一个 slice,并且方法不执行 reslice 操作,也不重新分配内存,使用值类型。3.如果接受者是一个小的数组或者原生的值类型结构体类型(比如 time.Time 类型 阅读全文
posted @ 2018-05-20 00:17 charlieroro 阅读(393) 评论(0) 推荐(0) 编辑
摘要:The unsafe Package in Golang Golang的unsafe包是一个很特殊的包。 为什么这样说呢? 本文将详细解释。 来自go语言官方文档的警告 unsafe包的文档是这么说的: Go 1 兼容性指南这么说: 当然包名称暗示unsafe包是不安全的。 但这个包有多危险呢? 让 阅读全文
posted @ 2018-05-16 23:51 charlieroro 阅读(1613) 评论(0) 推荐(0) 编辑
摘要:本文描述了protocol buffers使用.proto文件生成pb.go文件的过程 编译器 编译器需要插件来编译环境,使用如下方式安装插件:go get github.com/golang/protobuf/protoc-gen-go 使用.proto生成的文件相比输入文件有如下两处变更: 生成 阅读全文
posted @ 2018-05-15 22:06 charlieroro 阅读(13210) 评论(0) 推荐(0) 编辑
摘要:ProtoBuf 是一套接口描述语言(IDL)和相关工具集(主要是 protoc,基于 C++ 实现),类似 Apache 的 Thrift)。用户写好 .proto 描述文件,之后使用 protoc 可以很容易编译成众多计算机语言(C++、Java、Python、C#、Golang 等)的接口代码 阅读全文
posted @ 2018-05-09 00:16 charlieroro 阅读(1234) 评论(1) 推荐(1) 编辑
摘要:protocol buffers使用二进制传输格式传递消息,因此相比于xml,json来说要轻便很多。 示例:假设定义了一个Message 实际使用的时候将a设置为150,然后将其序列化到输出流,查看编码后的message,可以看到如下3个byte 解析: 上述三个字节实际分为两部分: 08 96 阅读全文
posted @ 2018-05-07 21:19 charlieroro 阅读(2522) 评论(0) 推荐(0) 编辑