在 go/golang语言中使用 google Protocol Buffer

怎么在go语言中实用google protocol Buffer呢? 现在的潮流趋势就是一键搞定,跟ubuntu安装软件一样  go get code.google.com/p/goprotobuf/{proto,protoc-gen-go} go install  code.google.com/p/goprotobuf/proto   搞定,可以在 $GO_PATH/bin下找到 protoc-gen-go 这个程序,那么就可以实用protoc-gen-go 进行go语言的proto文件的自...阅读全文

博客园 2012-10-28 11:47 zhangqingping

golang text/template的用法: if, else, with

golang的text/template 包在使用的时候还是有些不便,特别是涉及到逻辑判断的时候。经过测试,发现下面这种写法是正确的。 1.2.1的环境下没有问题! 相关资料:https://gowalker.org/text/template  。 eq是一个函数。 package main import "text/template" import "os" func main() { type Inventory struct { Material string Cou...阅读全文

CSDN博客 2014-06-05 23:26 u013834131

golang读取文件信息插入mongodb

这几日,在项目中顺手做了一个功能,读取手机归属地信息,然后插入mongodb    手机归属地格式 号码 省份 城市 卡型 区号 130001 江苏 常州 江苏联通 0519     代码如下 package main import ( "encoding/csv" "encoding/json" "fmt" "io" "labix.org/v2/mgo" "os" "runtime" ) /* 初始化配置 */ func init() { file, _ ...阅读全文

博客园 2013-04-17 17:43 zsbfree

[吐槽]go里的指针

http://www.mikespook.com/learning-go/ 看了这本书,很想吐槽: 这它喵的不是指针,摆明了是C++里面的引用! 1、C/C++指针可以++/--,处理的是地址值;     go的指针可以++/--,处理的是指向的变量的值; 2、C/C++中如果一个指针指向一个带函数的类/结构,可以用(*pClass).func()或者pClass->func()的写法来调用函数;     go中如果一个指针指向一个带函数的结构,pClass.func()等同于(*pClass)...阅读全文

开源中国博客 2012-07-10 08:57 我土鳖

golang struct结构体方法中的参数需要定义为指针类型

前几日写一个网页的简单计数器问题时发现,计数器居然永远为0,计数器不计数,见鬼了。。。 代码如下: type Counter struct { n int } func (ctr Counter) ServeHTTP(c http.ResponseWriter, req *http.Request) { fmt.Fprintf(c, "%08x\n", ctr) ctr.n++ fmt.Fprintf(c, "counter = %d\n", ctr.n) } func main(...阅读全文

CSDN博客 2013-10-12 15:20 songbohr

golang--gorilla/mux,强大的URL路由和调度器

标题完全是翻译,gorilla/mux is a powerful URL router and dispatcher,不过个人觉得翻译不到位,望指正。 gorilla/mux包是加一层结构,在这个结构里面配置客户端访问时需要的各种参数,然后传给http.Handle()函数。如果各位有看我的博客,就会了解它的结构组成。先看一个它的例子: func main() { r := mux.NewRouter() r.HandleFunc("/", HomeHandler) ...阅读全文

博客园 2013-04-17 15:05 getong

golang--零下线时间式重启

在Hacker News看到用Go达到Zero-downtime restarts,意思大概为零下线时间式重启,很早就知道nginx可以轻松做到平滑重启,一直都想用go来实现这样的功能。看了一下它的代码实现,所以有了这篇博文。 项目名字叫goagain,地址在:https://github.com/rcrowley/goagain。该项目是一个类库,也就是package,在go开发的程序中添加这个package就可以轻松地重启程序。 goagain会监控2个系统信号,一个为SIGTERM,接收到...阅读全文

博客园 2013-03-26 17:52 getong

vitess源码阅读笔记cache系列之memcache客户端(兼谈让人又爱又恨的gc和golang的错误处理机制)

memcache的客户端实现文件是memcache.go,实现了memcached的协议客户端,对于学习golang的客户端网络编程,memcache.go还是非常值得一看的。奇怪的是vitess的安装文档没有提到要求安装memcached,至于为什么使用memcache,而不是进程内的cache以节省开销呢?vitess的文档是这样描述的:Go’s existing mark-and-sweep garbage collector is sub-optimal for systems that...阅读全文

博客园 2014-10-04 19:26:11 gongaut

golang zip 操作示例

下面的代码,来之golang的示例源码,其中涉及的常见zip文件,修改了部分代码, 在ExampleWriter中添加了如下 fw, err := os.Create("/home/xxx/mem_sub/go/z.zip") if err != nil { //panic(err) fmt.Println(err) return } defer fw.Close()屏蔽了以下部分 // Create a buffer to write our a...阅读全文

CSDN博客 2014-02-14 09:44 u011363248

Ubuntu 13.04 golang开发环境配置

env:     ubuntu 13.04 i386     go 1.0.3     sublime text 2 go/golang不错的IDE组合:gocode + sublime text 2 + gosublime 首先安装go,两种方法: 1. 自动:sudo apt-get install golang 配置环境系统帮你配置好了 2. 手动:下载go二进制包,解压到/usr/local/目录下(这个目录是go建议的,我安装到其它目录在配置goc...阅读全文

开源中国博客 2013-04-28 16:39 Honghe

My favourate things about golang

在twitter 上有人讨论最喜欢的golang 特性,我也写下我最喜欢的golang 特点: 1.智能堆栈(与GC机制一起工作) 对程序员来说消除堆与栈的界限(在语言层次解决了堆栈问题,程序员不再关系数据是存在哪里,能不能用,解放了程序员), 最显著特点就是: 局部变量地址可以直接返回,只要还有引用,GC就不会回收; 2.slice   declare slice variable 可以直接使用append 不需要去make 3.duck interface 鸭子模型的接口设计 ...阅读全文

CSDN博客 2014-09-05 10:07 hittata

golang 入门指南

golang   http://golang.org/    Go语言是由Google开发的一个开源项目,具体语言特征就不细说了,可以查看一下文档。 学习使用了几天,想起了一句广告语: 简约而不简单。 资深程序员  云风对go语言使用的一些体验  http://blog.codingnow.com/2010/11/go_prime.html go 语言翻译项目 http://code.google.com/p/golang-china/ 《学习 go语言》 中文版 http://www....阅读全文

开源中国博客 2011-12-19 15:01 xsong

golang编程之时间编程

本文转载于:http://blog.chinaunix.net/uid-24774106-id-4006530.html    编程离不开时间,时间管理,严格的说分成两块,一个是当前的时刻,对应的是一个点,还有是一段时间间隔。本文简单的讲讲go的时间相关的编程,比较简单,高手可以一笑而过。     golang对时间的支持,是package time做的事儿,里面有好多的函数,我就不一一举例学习,毕竟这是官方文档干的事情。我们初步的学习下常用的函数。     第一个是UNIX epoch tim...阅读全文

CSDN博客 2014-04-02 10:38 yavobo

【golang】用container/list实现栈(Stack)

go语言中的container有heap、list、ring,没有stack。 其中heap是优先级队列,虽然有Push()/Pop()接口,但是使用heap要实现heap.Interface接口,不够简洁。 所以这里用list封装了一个简单的stack,留作他用。 1 package stack 2 3 import "container/list" 4 5 type Stack struct { 6 list *list.List 7 } 8 9 func ...阅读全文

博客园 2014-02-09 22:38 chinabrle