用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...阅读全文
用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...阅读全文
演示地址 http://gblog-revel.herokuapp.com/ 1.自述 为什么是go,不是说好的android游戏开发的吗?恩,起初是这么做的,但是在做android的时候发现不能真机调试了,这很恶心,每一次的卸载,安装拔线插线的过程实在是受不了了,好吧,玩点其它的把,然后就选择了go,如果以后google把android的改成了用go开发,我也不用担心不是吗(虽然看起来还是比较遥远的事情)。那么为什么这次是blog了呢?你的创意呢?你的idea用完了吗?恩,也许吧,先做个简...阅读全文
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 函数体中的语句可以不以 “;”结尾,除非想...阅读全文
试用了各种go的编辑环境,代码编辑最强大的,Sublime Text2是最方便的,尤其是快捷键自定义 注意:无编译、调试功能,需要自己手工编译,强大尽指代码编辑 安装过程如下: golang安装 详细过程不在描述,网上很多资料,只说明一点,为了gocode正常安装运行,设置 ~/.bashrc,增加配置: export GOROOT=/usr/local/go export PATH=$PATH:/usr/local/go/bin export GOPATH=~/go/chatroom exp...阅读全文
golang中有2种方式同步程序,一种使用channel,另一种使用锁机制。使用channel的案例可以参考我的博客:golang--使用channel来同步goroutine,这里要涉及的是锁机制,更具体的是sync.WaitGroup,一种较为简单的同步方法集。 sync.WaitGroup只有3个方法,Add(),Done(),Wait()。其中Done()是Add(-1)的别名。简单的来说,使用Add()添加计数,Done()减掉一个计数,计数不为0, 阻塞Wait()的运行。 要注意的...阅读全文
这两天用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...阅读全文
欢迎回到本系列的第二部分,在这我们将用Go的Beego这个web开发框架来加速开发。如果你错过了第一部分,我建议你去读一下,因为它是这一系列的基础。 在第一部分中,我们有了一个好的开始,通过安装Beego及命令行的Bee了解并实际使用了Beego,创建一个基本的项目,添加一个控制行为,创建了一个基本的视图模板,添加一个自定义路由并以学习如何使用请求参数为结尾。 在第二部分中,我们将进入更有趣的部分,构建一个结合数据库的Web应用,使用的是Sqlite3,还要研究一下模型、表单以及验证。我希...阅读全文
网络协议里面,很可能遇到自定义的封包,对应到c里面的是 typedef struct _PackageHeader { int headerLen; int timeStamp; short cmd }; 为了保证单字节对齐,可以加上编译选项 #pragma pack(1) 可惜的是,golang里面,没有这样的编译选项,猥琐的可参考的山寨代码如下 package main import ( "encoding/binary" "fmt...阅读全文
这个月比较关注什么,我比较关注google的go语言,go语言的logo使用了一只可爱的地鼠 。 大概看了下这个go语言的语法,感觉变量的定义类似于pascal,一些语句和语法类似于c和java,这个有指针也同时有垃圾回收器,并且号称执行速度接近于c的语言,很是值得期待,个人推荐一个论坛,上面有go语言在ubuntu910下安装和go语言的学习http://goroot.org/index.php阅读全文
测试动态库 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...阅读全文
先安装好 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 下载你对应平台的软...阅读全文
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的项目开发教程,于是就试着练了下手。我的环境采用的是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...阅读全文
【转换】的写法: 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、...阅读全文
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 { ...阅读全文
Hello Go App Engine users, As you may know, the Go developers intend to launch Go 1.1 in the coming weeks. All Go apps will be migrated to use Go 1.1 after its release. We are now providing a beta version of the Go 1.1 runtime for those who wish to ...阅读全文
从https://code.google.com/p/go/downloads/list下载相关包,直接解压 目录大概这样 golang ├── 3rdLibs ├── go ├── liteide ├── myApps └── myLibs 配置环境变量 mac下gvim ~/.profile debian下gvim ~/.bashrc export GOROOT=~/golang/goexport GOPATH=~/golang/3rdLibs:~/golang/myLibs:...阅读全文
2014-05-01 wcdj 最近将gcc-4.8.1升级为gcc-4.9.0,安装方法类似之前文章《在OS X Lion 10.8.4 x86_64平台搭建C++11开发环境》总结的方法。 gcc主页:http://gcc.gnu.org/ GCC 4.9.0 (changes) (docs) Status: 2014-04-22 (regression fixes and docs only). Serious regressions. All regressions. ...阅读全文
package main import ( "fmt" "net" ) func main() { exit := make(chan bool) ip := net.ParseIP("127.0.0.1") addr := net.TCPAddr{ip, 81} ...阅读全文
今天尝试了一下使用go语言中的反射来将struct类型转换成xml,结果相当纠结。首先去看了一下go的reflect包的实现,根据go的规则,首先应该去看一个NewXXX的方法,结果发现了一个叫NewValue的方法,通过这个方法我们能够得到一个Value接口。另外我们还应该注意到,go的反映实现中将Type和Value分开了,于是还有另外一个接口Type. type Value interface { // Type returns the value's type. Type...阅读全文