golang 反射, 诡异的数据类型。 Type.Tag

最近再实现一些功能, 用到了protobuf 还有 xml 。从他们书写的类型或是测试用例中, 看到了大量这样的数据结构: type Person struct { Name string `xml:"name"` URI string `xml:"uri,attr"` Email string `xml:"email,omitempty"` InnerXML string `xml:",innerxml"` } 源码可以见xml/marshal_test.go http://golang.or...阅读全文

开源中国博客 2013-05-17 00:54 Able

gofn: golang 控制台源代码查询工具

golang作为开源项目,查询源代码,查看其具体实现及查看其包、函数的使用方法是非常常见的事情。 本人作为一名golang初学者,经常要查看源代码,经常要经过很多路径,最终打开了,可是花费的时间非常多,尽管目前无闻大神的gowalker提供了帮助,但是1.无网络情况下2.有网络的情况下,还是步骤多。3.初学者要查看高手的写法也是困扰我的一个方面。 故自己写了一个gofn,地址:https://github.com/eruca/gofn 还在改善...阅读全文

开源中国博客 2014-03-23 07:05 _毛虫

golang在ubuntu-12.04和centos-6.5上的安装

golang官方编译器安装与配置 安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的 $ sudo apt-get install bison gawk gcc libc6-dev make 安装mercurial工具,目的使用hg命令来提取golang的源代码 $ sudo apt-get install mercurial 代取提取,如果您的网速比较慢的话,此步要多花点时间,我是在/home目录下运行下面命...阅读全文

开源中国博客 2013-08-28 22:35 壬癸甲乙

数据结构-(队列顺序存储)循环队列的实现(golang)

import ( "errors" ) //循环队列结构体(顺序存储) type CirularQueue struct { elem []ElemType //储存的数据 front int //头指针 rear int //尾指针 } //初始化循环队列 func InitCQueue() *CirularQueue { cqueue := new(CirularQueue) cqueue.elem = make([]ElemType, MAXSIZE) cqueue.front = 0 c...阅读全文

新浪博客 (2016-01-11 16:23:50) 卑微了承诺-life

初识golang之数组,slice,map学习

数组: 定义方式:var arr [n]type,n表示数组的长度,type表示存储元素的类型。定义好后,可以使用arr[0] = 42,这样指定下标来进行数组的读取和赋值。 注意:在go中长度也是类型的一部分,因此[3]int和[5]int是不同类型的。 go中数组不可以改变长度,数组之间的赋值是值的拷贝赋值,即当把一个数组作为一个参数传人函数的时候,传入的其实是数组的备份。arr := [10]int{1,2,5:6},da := [2][4]int{[4]int{1,2...阅读全文

开源中国博客 2013-08-22 23:44 vcity

golang在线编译+下载服务 建站之路

网站建立起源 http://build.golangtc.com 一开始我是想找一个网站,只要告诉它我的github地址,它就能把代码编译好,然后把代码给打包,给我一个下载地址。这样分享给朋友也很方便。 先是问了问谢大建的GoWeb交流群,有没有网站提供这样的功能,结果是没有。当时脑子一热,我就回了句:”既然没有我就自己写一个吧”。男人说话一定要算话嘛,然后就噼里啪啦的编码啦 #¥%……&*(。 调研编码 过去一直用drone.io,偶尔也用travis。不明白这两个NB的站为什么没有提...阅读全文

开源中国博客 2014-01-12 10:56 go-skyblue

关闭golang 的 variable declared but not used和package

觉得golang的 variable declared but not used 和 package imported but not used 在调试代码的时候很不方便!!!!!! 这么多语言中只有golang会有变量不使用, 包引用不用报错的! 有没有方法去掉这两个验证? 再上生产的时候开启验证再改代码?  方法: 修改golang源码, 将error错误改成warn错误(在eclipse上都会显示红色错误, 但warn不影响编译), 重新编译源码. ...阅读全文

开源中国博客 2013-12-18 16:55 lifephp

golang package init可以多处定义

1、在golang中import 包A的时候,会自动隐式的调用该包A的init()函数(i字母小写)。 2、调用顺序:如果该包A又import了别的包B,会优先调用包B的init()函数,最后才调用main包的init()函数。 3、一个包的init()函数可以定义多个,每个都会被调用,调用的顺序按文件名排序。阅读全文

开源中国博客 2013-11-27 17:19 yearnfar

简约语言:golang; CSP式的并发模型

用python开发也有几年了,很喜欢它的简洁。最近在看golang,感觉和python很像,语法简洁,标准类型相识,标准库也是一样的丰富。引用一段文字(http://blog.csdn.net/myan/article/details/2028545): 所谓”魔幻语言“,主要代表作品有C++、Perl、Javascript和Ruby。这些语言拥有丰富的特性,聪明的技 巧和意想不到的奇效,永远有发掘不完的奇技淫巧,总能找到让人匪夷所思的”yet another way"。反过来,“简约语言”崇尚...阅读全文

开源中国博客 2012-10-26 15:12 seewind

使用fswatch工具进行golang的热编译

这个是做什么用的? fswatch是一个工具, 通过检测文件的变化,并触发指定的命令 为什么需要fswatch 写完代码最重要的事情之一, 就是检测一下写好的代码是不是能够工作. 要早提前做的话, 收效越好, 发现的问题越多. 但是如果每次都需要make test, 每次都去编译或者测试的话, 还是挺烦人的. 所以如果能有一个自动化的工具去做的话, 那将是件很爽的事情. 最近我在忙一个项目, 经常性的需要, 停下来, 编译一下代码,看看能不能work. 真是烦死人了. 于是我就写了fs...阅读全文

开源中国博客 2014-01-19 21:17 go-skyblue

访问golang.org官网

解决golang.org不能访问的问题 golang.org被屏蔽了,直接访问不了,解决办法如下: 在 http://ping.eu/ping/ 上ping一下golang.org,获取到IP 然后,在C:\Windows\System32\drivers\etc\hosts中,添加ip和golang.org的对应关系,添加如下一行:   173.194.70.141 golang.org 重新启动下浏览器,就可访问golang.org了.阅读全文

开源中国博客 2014-05-22 13:26 陈好

windows下 sublime text2配置gdb 调试golang

1. 下载gdb for windows   ,点此下载  2.解压后,将目录添加到环境变量path  3. 安装sublimeGdb, 打开sublime text2 ,ctrl+shift+p, install package,选择sublimeGdb,回车 4.配置setting ,   在sublime text2 中,选择菜单 Preferences--Package settings--SublimeGdb--Setting Default  ,设置其下两项。wor...阅读全文

开源中国博客 2013-04-18 14:17 阳光灿烂的日子

golang对象序列化和反序列化

模拟测试1,000, 000条数据 每条10个字节  也就是10M不到的 数据(高度结构化的数据) 过程 1.对象序列化为 byte 2.byte反序为对象 3.gzip压缩byte 测试语言go测试方案: raw byte,json ,bson, msgpack (protostuff需要先做对象配置文件,比较麻烦,通常认为和msgpack性能相当 )结果:msgpack 胜出 大小 gzip压缩后大小 对象到byte耗时 ...阅读全文

开源中国博客 2013-12-29 12:13 咖啡伴侣

golang 调用C语言 Cgo

Cgo 使得Go程序能够调用C代码. cgo读入一个用特别的格式写的Go语言源文件, 输出Go和C程序, 使得C程序能打包到Go语言的程序包中. 举例说明一下. 下面是一个Go语言包, 包含了两个函数 -- Random 和 Seed -- 是C语言库中random和srandom函数的马甲.     package rand     /*     #include <stdlib.h>     */     import "C"     func Random() int {   ...阅读全文

开源中国博客 2013-03-30 10:34 ellice