go语言的相关文档教程和视频资料
现在go语言教程已经不少了,下载Go开发环境后,doc里也会有非常详尽的文档,或者上go语言的官网看资料,不过这些都是英文的,下面的这些资料都是我搜集的go语言中文文档教程和视频资料,希望对go语言的爱好者有所帮助。 http://code.google.com/p/golang-china/,比如:go爱语言粉丝翻译的go语言文档 http://v.youku.com/v_show/id_XMTY4Mzk5NTc2.html http://u.youku.com/user_show/uid...阅读全文
关于Go语言在服务端做Restful接口和socket通信
请到我的个人博客看golang rest相关文章 http://xiaorui.cc关于Go语言在服务端做Restful接口和socket通信已经转到: http://xiaorui.cc/2014/10/25/%E5%85%B3%E4%BA%8Ego%E8%AF%AD%E8%A8%80%E5%9C%A8%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%81%9Arestful%E6%8E%A5%E5%8F%A3%E5%92%8Csocket%E9%80%9A%E4%BF%A1/下图...阅读全文
我为什么选择go语言
这里,我并不打算引起语言争论的口水仗,我并不是什么大牛,对语言的造诣也不深,只是想通过自己实际的经历,来说说为什么我在项目中选择go。 其他语言的经历 C++ 在接触go之前,我已经有多年的c++开发经验。主要用在游戏服务端引擎开发以及P2P上面,那可是一段痛并快乐的时期,以至于我看到任何的程序钉子问题都觉得可以用c++这把锤子给敲定。但是对于互联网项目开发来说,除非你的团队整体的c++技术水平nb,并且有很强的代码规范,不然真可能是一场灾难,更别说我们现有团队几乎没其他人会这玩意了。 本来...阅读全文
golang中赋值string到array
要把一个string赋值给一个array,哥哥遇到一个纠结的困难,研究一番,发现主要原因是array和slice在golang里不是一个东西,本文提供两种解决方案。 在网络编程中network packet transfer,经常要定义固定的字节长度,如下面的f1: package main import"fmt" type T1 struct{ f1 [5]byte// I use fixed size here for file format or network packet...阅读全文
用golang启动一个daemon
用golang启动一个daemon 1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "os" 7 "runtime" 8 "syscall" 9 "time" 10 ) 11 12 func daemon(nochdir, noclose int) int { 13 var ret, ret2 uintptr 14 var err syscall.Errno 1...阅读全文
【Go web开发之revel+mgo】第1章 述与环境
演示地址 http://gblog-revel.herokuapp.com/ 1.自述 为什么是go,不是说好的android游戏开发的吗?恩,起初是这么做的,但是在做android的时候发现不能真机调试了,这很恶心,每一次的卸载,安装拔线插线的过程实在是受不了了,好吧,玩点其它的把,然后就选择了go,如果以后google把android的改成了用go开发,我也不用担心不是吗(虽然看起来还是比较遥远的事情)。那么为什么这次是blog了呢?你的创意呢?你的idea用完了吗?恩,也许吧,先做个简...阅读全文
golang 学习第一篇 hello go
package main import "fmt" func main(){ fmt.Println("Hello go!") } 知识点: 1.每个go程序都必须包含一个package main 2.每个package main中都必须有一个func main 3.golang函数定义:func 函数名 参数列表 返回值列表 函数体 4.书写格式: 4.1 函数体的开始花括号 func 函数名 参数列表 返回值列表之后的同一行 4.2 函数体中的语句可以不以 “;”结尾,除非想...阅读全文
ubuntu下安装Sublime Text2和go编辑环境
试用了各种go的编辑环境,代码编辑最强大的,Sublime Text2是最方便的,尤其是快捷键自定义 注意:无编译、调试功能,需要自己手工编译,强大尽指代码编辑 安装过程如下: golang安装 详细过程不在描述,网上很多资料,只说明一点,为了gocode正常安装运行,设置 ~/.bashrc,增加配置: export GOROOT=/usr/local/go export PATH=$PATH:/usr/local/go/bin export GOPATH=~/go/chatroom exp...阅读全文
golang--sync.WaitGroup使用示例
golang中有2种方式同步程序,一种使用channel,另一种使用锁机制。使用channel的案例可以参考我的博客:golang--使用channel来同步goroutine,这里要涉及的是锁机制,更具体的是sync.WaitGroup,一种较为简单的同步方法集。 sync.WaitGroup只有3个方法,Add(),Done(),Wait()。其中Done()是Add(-1)的别名。简单的来说,使用Add()添加计数,Done()减掉一个计数,计数不为0, 阻塞Wait()的运行。 要注意的...阅读全文
golang使用go-sql-driver实现mysql增删改操作
这两天用golang 写的服务端做的都是和redis做交互,因为后期还会用mysql的一个表做验证。 先学习下golang对mysql的操作 !mymysql和go-mysql-driver是两个现在都很流行的go的mysql驱动,看了下文档,后者比较的健全,听大牛们介绍,貌似go-mysql-driver更加的健全。安装配置还是那么简单,直接go get就可以了go get github.com/go-sql-driver/mysql好了,咱们就开始用go-sql-driver增删改查先用go...阅读全文
使用 beego 搭建 web 应用之二
欢迎回到本系列的第二部分,在这我们将用Go的Beego这个web开发框架来加速开发。如果你错过了第一部分,我建议你去读一下,因为它是这一系列的基础。 在第一部分中,我们有了一个好的开始,通过安装Beego及命令行的Bee了解并实际使用了Beego,创建一个基本的项目,添加一个控制行为,创建了一个基本的视图模板,添加一个自定义路由并以学习如何使用请求参数为结尾。 在第二部分中,我们将进入更有趣的部分,构建一个结合数据库的Web应用,使用的是Sqlite3,还要研究一下模型、表单以及验证。我希...阅读全文
golang获取packed struct的大小
网络协议里面,很可能遇到自定义的封包,对应到c里面的是 typedef struct _PackageHeader { int headerLen; int timeStamp; short cmd }; 为了保证单字节对齐,可以加上编译选项 #pragma pack(1) 可惜的是,golang里面,没有这样的编译选项,猥琐的可参考的山寨代码如下 package main import ( "encoding/binary" "fmt...阅读全文
google发布了一个go语言
这个月比较关注什么,我比较关注google的go语言,go语言的logo使用了一只可爱的地鼠 。 大概看了下这个go语言的语法,感觉变量的定义类似于pascal,一些语句和语法类似于c和java,这个有指针也同时有垃圾回收器,并且号称执行速度接近于c的语言,很是值得期待,个人推荐一个论坛,上面有go语言在ubuntu910下安装和go语言的学习http://goroot.org/index.php阅读全文
golang调用动态库
测试动态库 test_so.h int test_so_func(int a,int b); test_so.c #include "test_so.h" int test_so_func(int a,int b) { return a*b; } 生成so gcc -shared ./test_so.c -o test_so.so 复制so文件到golang项目目录 golang项目目录,建立 load_so.h int do_test_so_func(int a...阅读全文
跟无闻学习GO Web 编程(一) -- go 开发环境搭配(win7 64bit)
先安装好 git。这个很简单,到 http://code.google.com/p/msysgit/downloads/list 下载对应平台的软件,如:Git-1.8.3-preview20130601.exe,直接运行,按提示安装即可。安装过程中,选择在 命令行 运行的选项。因为 go 有命令需要。如果没有选择,也可以自己配置 git 命令到 环境变量 中即可。 安装 go。到 https://code.google.com/p/go/downloads/list 下载你对应平台的软...阅读全文
golang 使用template funcmap的规则
http://stackoverflow.com/questions/10199219/go-template-function http://stackoverflow.com/questions/15209236/multiple-templates-with-funcmap https://groups.google.com/forum/#!topic/golang-nuts/0Q-r_EkCPgk 总之解决方法就是,以首个文件的basename作为模板的名字就可以解决了。 例子 fun...阅读全文
Go项目开发----2048小游戏
刚接触go语言不久,前段时间看到一个2048的项目开发教程,于是就试着练了下手。我的环境采用的是Ubuntu Linux环境。源码下载:https://github.com/shiyanlou/golang2048_game.githttp://download.csdn.net/detail/hzy305365977/8067803 项目开发详细教程:http://www.shiyanlou.com/courses/type/1一. 2048 游戏设计《2048》由19岁的意大利人Gabrie...阅读全文
golang 数据类型的转换
【转换】的写法: 1、接口类型 → 普通类型,用 I.(A) //在线测试地址:https://play.golang.org/p/LhEB2qLiMs //I.(A) 只能用在switch里面 2、普通类型 → 普通类型,用 A(B) 3、gob包里面的 Encode 和 Decode //在线测试地址: https://play.golang.org/p/CvTr0vZWvc 【判断】的写法: 4、...阅读全文
[golang] call the struct function in the template range
here is the code of a struct type Post struct { Id int `db:"id"` Title string `db:"title"` Content string `db:"content"` Create_time int64 `db:"create_time"` } func (p Post) AttrCreatetime() time.Time { ...阅读全文