go interface理解

如果一只鸟长得像鸭子,走起路来像鸭子,叫起来也像鸭子,那么就把这只鸟叫做鸭子; golang中的interface就是上面这个意思,如果你定义了一个struct,它里面的方法和属性都和interface中的一样,那么可以说,这个struct实现这个interface,上代码 package main import ( "fmt" ) type s struct { //定义一个s类型,有一个属性i是int的 i int } func (this *s) Get() int ...阅读全文

开源中国博客 2014-08-23 14:32 别人说我名字很长

SublimeText3搭建go语言开发环境(windows)

SublimeText3搭建go语言开发环境(windows) 下载并解压:     Sublime Text Build 3021.zip注册:     尽量不要去破解    安装Package Control     命令行进入SublimeText3的安装目录运行以下命令     cd Data/Packages/     git clone https://github.com/wbond/sublime_package_control.git "Package Control"    ...阅读全文

博客园 2014-02-06 14:39 china1

komodo编辑器go语言支持文件

已经有大神写出了komodo ide/edit的go语言支持插件https://github.com/trentm/komodo-go,但是作者并没有将该文件上传到komodo官方插件网站上,并且源码也没有编译,这里给个编译后的版本,方便新手使用。 go_language.xpi 提示:   1,安装gocode 智能提示   2, 安装godef 跳到定义 作者github上有详细的gocode,godef安装指导。 经过测试,在我机器上不能进行语法检查。阅读全文

博客园 2013-12-21 23:45 mtima

go的slice学习

切片是对某个容器不同区间范围的引用。 a := []int{0,0,0,0,0} 这行代码实际上包含了两个逻辑步骤: 1.创建了一个容量为5的容器 2.a引用容器[0:5]的区间,a[1]=1即设置变容器第二个位置的值为1。 b := a[0:2] 这行代码并没有创建新的容器,只是在原有容器上增加了一个新的引用b,b可以修改容器的[0:2]区间内的值,由于a也可以修改这个区间的值,所以对b做出赋值操作也会反应到a上。阅读全文

开源中国博客 2014-09-12 17:23 吾爱

小心#Golang#官方文档中没有详细说明的陷阱

近日在高负载时使用 Golang 的 sql driver 时碰到泄漏问题,最后终于发现 database/sql 的文档和 Examples 都没有很好的说明下面2个关键点: 一、 每个 Golang 进程只需要 sql.Open() 一次 最初,想当然的做法是每次有sql请求都先 sql.Open() 。 这实际上是不对的。 database/sql 自己会维护连接池,每次 sql.Open() 会新建一套连接池。虽然不会报错,但是会导致资源浪费。而且我发现在系统资源紧张时会导致锁死的 go...阅读全文

新浪博客 (2014-03-10 16:15:18) 沈晟

我的go语言上机测试代码

汇总我的go语言上机测试代码,测试环境win7、go 1.1 beta(32位), GOROOT = E:\opensource\go\go 测试代码下载地址 hellogo.zip,包含下面的代码: client.go          -- net客户端gargs.go         -- 取命令行字符串gchannel.go     -- 测试channelgcommand.go  -- 测试os包的exec.Commandgdefer.go        -- 测试defergflag...阅读全文

博客园 2013-04-15 00:17 youyou

go语言 windows 32位编译环境搭建

网上讲go语言编译环境搭建的文章不少了,搭建环境本身也相对简单, 本文主要是提供一个可下载的地址,因为刚开始我找了好几个地址都没能下载到想要的版本, 这个地址是刚(2013.04.08晚)试过能访问的:http://code.google.com/p/go/downloads/list Downloads页面有下面这些go语言开发包,这里我们选择下载go1.0.3.windows-386.zip: go1.0.3.darwin-386-signed.pkg go1.0.3.darwin-...阅读全文

博客园 2013-04-08 23:35 youyou

go 语言并发机制 goroutine 初探

go 语言的一个很大的优势就是可以方便地编写并发程序。go 语言内置了 goroutine 机制。这是一种类似 coroutaine(协程) 的东西。但是又不完全相同。 比如这个例子: package main import ( "fmt"; "strconv" ) func main() { ch := make(chan int) task("A", ch) task("B", ch) fmt.Printf("begin\n") <-c...阅读全文

博客园 2012-07-02 09:31 shihao

读生产环境下go语言最佳实践有感

最近看了一篇关于go产品开发最佳实践的文章,go-in-procution。作者总结了他们在用go开发过程中的很多实际经验,我们很多其实也用到了,鉴于此,这里就简单的写写读后感,后续我也争取能将这篇文章翻译出来。后续我用soundcloud来指代原作者。 开发环境 在soundcloud,每个人使用一个独立的GOPATH,并且在GOPATH直接按照go规定的代码路径方式clone代码。 $ mkdir -p $GOPATH/src/github.com/soundcloud $ cd $...阅读全文

开源中国博客 2014-05-12 11:08 siddontang

go 语言 sublime Text 2 编译设置

现在go语言ms经常被人提,我去凑热闹看了看~~ go 语言 windows 下 的编译器可以去http://code.google.com/p/gomingw/downloads/list 下载 下载解压配置环境变量“环境变量”(我的电脑->高级系统设置->环境变量),在系统变量的标签下,依次新建编辑如下几个键值对: (1). 新建 变量名:GOBIN 变量值 :c:\go\bin (2). 新建 变量名:GOARCH 变量值:386 (3). 新...阅读全文

博客园 2012-05-20 02:12 qiezi

windows下用go语言写程序

linux下,google的go语言安装起来很方便,用起来也很爽,几行代码就可以实现很强大的功能。现在的问题是我想在windows下玩……其实windows下也不麻烦,具体见下文。 一、安装go语言:1、安装MinGW(https://bitbucket.org/jpoirier/go_mingw/downloads)2、下载源码   进入C:\MinGW,双击mintty开启终端窗口;   执行"hg clone -u release https://go.googlecode.com/hg/...阅读全文

博客园 2012-02-09 18:09 MikeZhang

将一个php的一个查询代码改成go语言

一个朋友的网站用php开发的,总是感觉慢. 我将其中的查询sql server 代码改成go语言 (有7000多条记录) 都能感觉到速度比以前快多了. 努力继续学go语言吧. php没有使用任何框架. package main import ( _ "github.com/lunny/godbc" "github.com/go-xorm/xorm" "net/http" "fmt" ) func testweb(w http.ResponseWriter,r *htt...阅读全文

开源中国博客 2014-07-05 18:40 红烧土豆

在Delphi XE中使用go语言的defer方法

在实现函数时,如果中间的步骤出错,需要释放资源并退出函数,这些工作很繁杂,容易出错。 go语言的作者对过去十年软件开发的经历感到失望,针对这个问题,他带来了defer方法,它能让不管在函数内的哪个地方exit,都确保你有机会清扫干净。Delphi XE中也可实现一个类似的方法。 program demo_defer; {$APPTYPE CONSOLE} uses  SysUtils,   coroutineUnit; //还是用这个单元。。。还是在附件里 beginTProc(procedur...阅读全文

博客园 2011-06-27 17:57 wxy8

安装 go1.1 正式版 在ubuntu12.04server64位

更新 go1.1正式版 已经在北京时间5月14日10点左右发布 从google网站的go下载页找到对应的包,我这里是linux64位,所以我下载go1.1.linux版 本文参考自官方手册 确定环境 go在运行时会读取环境变量,如未读到相关环境变量,则按默认值运行 例如${GOROOT}表示为安装位置,如未正确设置,会造成运行时找不到对应文件 在家目录(~)下的.bashrc文件最后加入以下内容 $ vi .bashrc #go安装的位置 export GOROOT=$HOME/g...阅读全文

开源中国博客 2013-05-06 15:35 waynehu

Gccgo in GCC 4.7.1[翻译]

英文原文: http://blog.golang.org/2012/07/gccgo-in-gcc-471.html Go语言开始就由一个语言规范定义,并不是倚赖某个具体实现。Go开发小组针对语言规范,实现了两个不同版本的编译器:gc和gccgo。 有两个不同的实现有助于保持语言规范的完整和完整:当两个实现相互冲突时,我们修改语言规范,或者是修改实现以保持和规范一致。 Gc是默认的编译器,专门针对go编写。Gccgo是另一个不同实现(有不同的侧重目标),下面我们将详细介绍。 Gccgo是作为...阅读全文

开源中国博客 2013-04-01 21:17 chai2010