go arm、android版本
export GOROOT="$home/src/go"#go 源码存放位置 export GOBIN="$GOROOT/bin"#go、gofmt、godoc工具位置 export PATH="$GOBIN:$PATH"# #开始编译,arm架构,linux系统 cd $GOROOT/src export GOOS=linux#适应的OS export GOARCH=arm#目标架构 ./all.bash #host comply cd $GOROOT/src ./all...阅读全文
go语言chan 和 routine活用
这里,我们以游戏中的一个情况为例。比如魔兽世界里的40人团队副本BOSS战,很多玩家同时攻击BOSS,BOSS的血量会进行频繁修改,我们要记录对BOSS的致命一击。常规 对BOSS血量的操作经行加锁,然后修改,每次攻击甚至还会判断怪物是否处于死亡状态以判断客户端是否能施放某个技能,但这样会让一个锁控制40个玩家的攻击操作,会导致攻击,技能等释放的不流畅。所以魔兽世界应该不是采用这种加锁的方式。为什么我这样说,因为做为了一个wower,我们经常会发现,实际BOSS,怪物已经死了,但我的寒冰剑还在半...阅读全文
cgo 随笔(golang)
结构体应用 //结构体定义如下 // test.h struct test { int a; int b; int c; } 在golang中的调用如下: 1 package name 2 3 4 import "C" //这个是必须要包含的,如果要调用cgo 5 6 // #cgo linux CFLAGS: -l. //这个是声明查找头文件的位置 是在本目录 7 // #include "test.h" 8 9 ...阅读全文
相同问题go语言与php的实现对比
一、面向对象php:class Rectangle { private $width; private $height; private $color; public function __construct($width, $height, $color) { $this->width = $width; $this->height = $height; $this->color = $color; } public function setColor($color) { $this->col...阅读全文
Java程序员快速入门 go 语言
这篇文章帮助Java程序员快速入门Go语言。 本文将以一个有代表性的例子为开始,以此让Java程序员对Go语言有个初步认识,随后将详细的描述Go语言的各个构成模块,最后以一个例子来讲解Go语言与Java语言的不同点。 yale8848翻译于 1 年 前 1人顶 ...阅读全文
go protobuff
Go使用ProtoBuff 发现Google Code上面有针对Go语言的Protobuff实现 code.google.com/p/goprotobuf 下面说下安装过程: go get code.google.com/p/goprotobuf 之后提示no Go source files 执行 go install code.google.com/p/goprotobuf/proto 在Go的安装目录pkg下产生对应路径的proto.a文件 执行 go install c...阅读全文
Windows下搭建go语言开发环境 以及 开发IDE (附下载链接)
1.下载 并且 安装 Go安装包 =========================================================== 在CSDN上传了我的版本,供大家下载: =========================================================== go1.2.windows-386.msi : http://download.csdn.net/detail/shuideyidi/7718563 go1.2.1...阅读全文
从例子中学习 go 语言 —— 基本语法
go 语言或是 golang 官网上有个 tour。从例子中学习一门语言虽然具有片面性,但是往往是一个入门的好方法;如果一开始就去是看手册的话,有些凌乱,摸不着头脑,有点看字典的味道。所以,先从例子中学习,然后再系统的学习,应该是个不错的方法。 本篇文章基本按照 tour 的步骤,跑跑例子,从例子中去猜测/分析 go 的语法以及结构等,一定程度上可以锻炼一下,观察和分析能力。 hello,world: package main import "fmt" func mai...阅读全文
go中iota的用法
先上代码,结果是什么? package main import ( "fmt" ) const ( i=1<<iota j=3<<iota k l ) func main() { fmt.Println("i=",i) fmt.Println("j=",j) fmt.Println("k=",k) fmt.Println("l=",l) } 输出: i= 1 j= 6 k= 12 l= 2...阅读全文
读生产环境下go语言最佳实践有感
最近看了一篇关于go产品开发最佳实践的文章,go-in-procution。作者总结了他们在用go开发过程中的很多实际经验,我们很多其实也用到了,鉴于此,这里就简单的写写读后感,后续我也争取能将这篇文章翻译出来。后面我用soundcloud来指代原作者。开发环境在soundcloud,每个人使用一个独立的GOPATH,并且在GOPATH直接按照go规定的代码路径方式clone代码。$ mkdir -p $GOPATH/src/github.com/soundcloud $ cd $GOPATH/...阅读全文
Go语言调用C语言函数的坑
最近在看人民邮电出版社 许式伟 吕桂华编著的《Go语言编程》,看到【1.2.9 语言交互性】小节的cprint.go。未按照书中源代码格式编写,而是把 import "C" 和 import "unsafe" 合并放入小括号中并和注释结束符 */ 间隔了一行,这也是大多数Go语言学习和开发者经常使用的代码风格,我修改后的代码如下:package main/*#include <stdio.h>#include <stdlib.h>*/import ( "C" "unsafe")func main...阅读全文
golang--gorilla/context,golang之单例模式
gorilla是用golang写的web工具箱,里面提供了一系列的工具。在用golang开发web中,搭配gorilla可以加快整个开发的进程。gorilla的官网在这里,代码托管在github,这里要看的是gorilla/context。 在context文件夹里面,有个context.go文件,里面就是context包主要的代码。 在context.go的开始部分,声明了几个全局变量, var ( mutex sync.Mutex data = make(map[*http.Request...阅读全文
go install 的工作方式
go install 是Go语言提供的非常方便的编译工具。但是最近在项目使用过程中遇到一些问题,在这里记录一下。 问题 通常情况下,修改了代码之后使用go install编译,运行,都能得到正确的结果。 但是有时候发现,修改了源代码,却没有被重新编译,于是导致许多诡异的问题。 为了弄清楚这个问题,下面用一个简单的例子来做个实验。也顺带把go install的工作方式简单介绍一遍。 简单的代码 现在有一个名叫hello的项目,目录在/tmp/gomain/src/hello/hello.go pa...阅读全文
golang-china
golang-china - Go 语言中文翻译项目 - Google Project Hosting翻译任务安排2010年12月:command 2011年01月:pkg部分 发布:Go语言文档初稿 认领任务、翻译进展、检验、疑问等,请邮件讨论 golang-china@googlegroups.com中文文档翻译进度 标题状态进度翻译者校验者Install Go(安装Go环境)初译done完成chaishushanGo Tutorial(Go语言入门教程)初译done完成Bian Jiang...阅读全文