golang初探之安装与代码组织

自从第一次在图灵社区看到许式伟的《Go语言编程》知道还有golang这门编程语言已经将近有一年的时间了,自从那之后开始学习golang,golang的社区很活跃,我觉得golang是未来的趋势。 好了,今天这里就简单的介绍一下golang的安装。 一、去https://code.google.com/p/go/downloads/list下载最新的go tools 二、下载完最新的压缩包解压到你的golang目录,然后在设置环境变量:   1)GOROOT: 设置你的GOROOT,G...阅读全文

CSDN博客 2013-03-20 07:20 wowzai

golang daemon

最近一段时间在学习go语言的使用 最近在实现一个功能,需要程序有参数选项:deamon; 也就是支持后天运行。于是上网google一个golang deamon package main import ( "fmt" "log" "os" "runtime" "syscall" "time" ) func daemon(nochdir, noclose int) int { var ret, ret2 uintptr var...阅读全文

CSDN博客 2013-11-13 16:21 cfxks1989

golang协程测试

package main import ( "fmt" "time") const NUMBER = 1000000 func test() { for { }} func main() { fmt.Println(time.Now().UnixNano()) for i := 0; i < NUMBER; i++ { go test() } fmt.Println(time.Now().UnixNano()) for { }}   启动100W个协程,占用了:4599640KB内存,平均每个...阅读全文

博客园 2014-04-18 00:45 samurail

golang json处理struct未导出成员

我们用golang的json来marshal一个结构体的时候,结构体的未导出的成员将无法被json访问,也就是不会出现json编码的结果里(也就是小写的成员没法导出) 这个是由于技术的上问题引起的:golang的结构体里的成员的名字如果以小写字母开头,那么其他的包是无法访问的,也就是json无法访问我们的结构体里小写字母开头的成员 这个可以有两种方法解决 1. struct的成员用大写开头,然后加tag 2. 实现json.Marshaler接口 第一种方法比较常见这儿就不详细展开了 第...阅读全文

CSDN博客 2014-08-14 16:59 varding

Windows 下 gcc + golang 编译 git2go

最近研究用go语言操作git,除了直接走命令行用os/exec包,还可以使用libgit2的go绑定git2go操作。 但是libgit2是c语言库,go使用cgo连接c程序,需要cgo的支持。总之过程复杂,摔了一路。 安装 gcc 和 pkg-config 首先是安装gcc和pkg-config(cgo依赖)。gcc编译器推荐用TDM-GCC来直接安装,方便快捷,注意不要用绿色版用安装版。pkg-config可以再gnome的官方库中找到。pkg-config安装需要同时下载: ht...阅读全文

开源中国博客 2014-02-18 22:37 傅小黑

golang文件服务器

func FileServer(root FileSystem) Handler 就是返回一个handler,用作http.handle这个函数的参数。 FileSystem是一个接口 type FileSystem interface{   Open(name string)(File,error) } 说白了文件服务器就是要这样一个接口作为静态文件服务器的根目录。 一般用这个做一个前缀转换 func StripPrefix(prefix string, h Handler) Hand...阅读全文

博客园 2014-01-24 09:13 ggaaooppeennngg

go filepath Abs

func Abs(path string) (string, error) 检测地址是否是绝对地址,是绝对地址直接返回,不是绝对地址,会添加当前工作路径到参数path前,然后返回 一下是测试代码 func TestAbs() {     fpt, err := filepath.Abs("/hello")     if err != nil {         panic(err)     }     fmt.Println(fpt)     fpt, err = fil...阅读全文

开源中国博客 2013-12-04 15:01 zongjh

golang 学习

安装与环境配置 点击下载golang安装包, 如果链接无法访问(好奇葩的墙), 请尝试将: 173.194.71.141 golang.org 加入hosts文件. 需要配置的环境变量有(以linux为例): Sh代码   export GOROOT=$HOME/go              # go安装目录   export PATH=$PATH:$GOROOT/bin       # 将安装目录的bin文件夹加入PATH变量   export GOPATH=~/Dropb...阅读全文

CSDN博客 2014-01-23 16:14 yyd01245

golang交叉编译

golang传的很牛X,但不能交叉编译,对我来说一点用都没有,有个开源项目是用golang写的,如果不能在arm上用,那么我只能将它“翻译”成C,再集成到我的产品中,但我没有这个时间。好在交叉编译最后还是成功了。1. 准备工作1.1 golang环境及arm交叉编译工具可以参考《golang安装手札》这篇文章。1.2 GCC交叉编译器在1.1基础上,已经可以编译能在Arm上运行的纯golang写的二进制了,但有一个尚未解决的问题是:golang与C联合开发的模块,编译时报错:can't load...阅读全文

CSDN博客 2014-09-25 09:58 coroutines

golang实现直接插入排序算法

直接插入排序算法golang实现版本: 插入算法概要: 建立一个空的链表,首先在要排序的数组中随便拿出来一个数据,放在新建链表的开头,然后不停的从原数组中 获取数据,并和链表中的数据进行比较,大就放在链表的右端,小就放在链表的左端,一直循环直到结束为止, 排序完成。 package main import( "container/list" "fmt" ) var old []int = []int{432,432432,4234,333,333,21,22,3,30,8,20,2,...阅读全文

CSDN博客 2013-06-06 15:36 rufidmx

go 回调函数

package main    import "fmt"    type Callback func (x, y int) int    func main() {   x, y := 1, 2   fmt.Println(test(x, y, add))  }    //提供一个接口,让外部去实现  func test(x, y int, callback Callback) int {   return callback(x, y)  }    func add(x, y int) int ...阅读全文

开源中国博客 2014-05-07 17:41 FaintX

golang中的函数的值传递

今天遇到了一个困惑的地方,很多新手可能会遇到(特别是之前是做JAVA的) golang中的面向对象的部分的特性(下边写的就是process是MySession结构体的一个方法,golang中采用的是这种一个代码片段一个代码片段的方式给结构体或者说class添加隶属于他的执行方法的,而拥有的属性和java中一样,事先定义在内部的。) type MySession struct{ in string out string } func (session MySession)process(xml...阅读全文

CSDN博客 2013-05-07 11:05 suncaishen

golang关于json库的一个比较容易陷入的坑 uint8[]数组的json转换问题.

golang关于json库的一个比较容易陷入的坑 uint8[]数组的json转换问题. 2013-09-11 16:29 837人阅读 评论(0) 收藏 举报 原文来自:http://blog.csdn.net/spiritring/article/details/11570219 类似这个CA如果实例转化成json.List会变成字符串. [cpp] view plaincopy type CA struct {       List []uint8   }...阅读全文

CSDN博客 2014-09-18 14:02 newsyoung1

为什么选择golang写手机游戏服务器

选择golang做游戏服务器开发 经过大半年的手机游戏运营、维护、后续开发,对下一个网络游戏的服务器端开发技术选型的需求如下:1. 体系成熟,有大型成功案例2. 开发效率高3. 性能高,最好是支持并行技术充分利用多cpu资源4. 代码加密发布5. 开发逻辑简单,如多线程同步、加锁、多进程同步就比较复杂6. 易学易用,如果是新技术 可选技术对比 我对可以选择的技术平台经过自己的一些分析总结如下(一己之言): 项目 nodejs python c++/ruby erlang golang ...阅读全文

CSDN博客 2013-11-23 06:50 Creak_Phone

golang工程约定,分包和编译

go-lang已经发布了go1.1.2,前段时间看了一下go语言的教程,就喜欢上了这门语言,但使用多个文件编译是碰到一些麻烦,引用出错编译通不过,google之找到了相关教程:              https://golang.org/doc/code.html              http://lavafree.iteye.com/blog/1683363,              http://blog.studygolang.com/2012/12/go项目的目录结构...阅读全文

CSDN博客 2013-09-26 19:22 king_sky

golang 使用mgo 连接MongoDB

github:  https://github.com/ZhangzheBJUT/blog/blob/master/mgo.md 注:现在MongoDB官方还没有推出关于官方支持的golang的driver,推荐使用的是mgo, mgo的详细文档说明:http://godoc.org/labix.org/v2/mgo 下面是开发中自己写的一个用mgo连接MongoDB数据库的使用实例。 package main import ( "fmt" "labix.org/v2...阅读全文

CSDN博客 2014-03-20 16:56 Crazy__Programm 等