go 中的字符串遍历
首先看下以下例子: package main import "fmt" func main(){ s := "我是中国人" for i:=0; i < len(s); i++{ fmt.Printf("%c", s[i]) } fmt.Printf("\n") for _, v := range s { fmt.Printf("%c", v) } fmt.Pr...阅读全文
go语言,简单分析和了解
Go 本地化 该指南也有其他语言版本: Brazilian Portuguese — Português do Brasil Catalan — Català Spanish — Español French - Français Hebrew — עִבְרִית Japanese — 日本語 Korean — 한국어 Romanian - Română Chinese — 普通话 Go Playground 这个指南构建在 Go Playground 之上,这是一个运行在 golan...阅读全文
goalng导出excel(csv格式)
最近项目中有个小需求,需要将查询结果导出到excel。之间前java比较容易,使用POI很容易就能实现,查了下golang的文档,发现golang下边并没有导出excel的包,但是却有一个encoding/csv的包,看了下发现可以导出csv文件,大家都知道csv文件其实就是文本格式的excel文件,可以直接通过excel打开或是导入excel。 看起来挺好的,问题如愿解决,但是事实证明对已一个还不成熟的语言或是库最好还是先测一下的好。兴冲冲的卸了测试例子,成功导出了一个text.cs...阅读全文
go install runtime/cgo: open /usr/local/go/pkg/darwin_amd64/runtime/cgo.a: permission denied
在做更新时,收到下面提示: go get github.com/astaxie/beego go install runtime/cgo: open /usr/local/go/pkg/darwin_amd64/runtime/cgo.a: permission denied 看目录下,也没有cgo.a 文件。 所以是找不到这个文件报的错误,而不是没有权限的问题。通过sudo来设置权限是不能解决这个问题的。 http://www.cnblogs.com/ghj1976/...阅读全文
[翻译] effective go 之 Control structures
Control structures The control structures of Go are related to those of C but differ in important ways. There is no do or while loop, only a slightly generalized for; switch is more flexible; if and switch accept an optional initialization stateme...阅读全文
在go语言里使用thrift做远程通讯
一.准备和编写IDL thrift的介绍和安装见上文 thrift支持的数据类型 基本类型 bool: A boolean value (true or false) byte: An 8-bit signed integer i16: A 16-bit signed integer i32: A 32-bit signed integer i64: A 64-bit signed integer double: A 64-bit floating point number strin...阅读全文
go语言学习小结(一)
学习go。记录下 1),package、import 这两个功能在现在的很多语言(java、C#)都具备了。这里面引入包在C家族确实是个很好的东西,使得代码组织更清晰;import而不是include头文件,完全剔除了c家族的弊病。 2),变量命名风格的改变 定义变量: var i int跟C家族语法int i;相去甚远,貌似更接近delphi、javascript、scala风格。当然在语法分析中这样定义变量比C风格的定义是更容易识别的。 类型推导: 类...阅读全文
[翻译] effective go 之 Names Semicolons
Names Names are as important in Go as in any other language. In some cases they even have semantic effect: for instance, the visibility of a name outside a package is determined by whether its first character is upper case. It's therefore worth sp...阅读全文
编译安装go语言(ubuntu)
vi ~/.bashrc #在文件末尾追加如下环境变量 #export GOROOT=$HOME/go #export GOARCH=386 #export GOOS=linux #export GOBIN=$HOME/bin hg #提示无效的命令 让执行下面的命令 可以获得hg sudo apt-get install mercurial hg clone -r release https://go.googlecode.com/hg/ $GOROOT cd $GOROOT/src ./...阅读全文
[翻译] effective go 之 Formatting Commentary
Formatting(代码风格) Formatting issues are the most contentious but the least consequential. People can adapt to different formatting styles but it's better if they don't have to, and less time is devoted to the topic if everyone adheres to the same s...阅读全文
理解oredev上go的一个示例
package main import( "io" "fmt" "log" "net" ) const listenaddr = "0.0.0.0:4000" var partner=make(chan io.ReadWriteCloser) func match(c io.ReadWriteCloser){ fmt.Fprintln(c,"wait for partner...") select{ case partner<-c: //do nothing c...阅读全文
Go 语言模块安装工具:goinstall
文档地址:http://golang.org/cmd/goinstall/ Go模块列表:http://godashboard.appspot.com/package goinstall 主要是方便安装第三方模块,目前支持 hg(mercurial),git,svn三种版本控制系统。 下面来举例怎么安装 web.go 模块。源地址是:http://github.com/hoisie/web.go smallfish@debian:~$ goinstall -dashboard=...阅读全文
csv文件操作(go语言)
go语言自带的有csv文件读取模块,看起来好像不错,今天玩玩,也算是系统学习go语言的一部分……^_^ 一、写csv文件 函数: func NewWriter(w io.Writer) *Writer func (w *Writer) Flush() func (w *Writer) Write(record []string) (err os.Error) func (w *Writer) WriteAll(records [][]string) (err os.Error) 具体...阅读全文
Ready go系列之: go 的安装
http://www.cnblogs.com/dongritengfei/archive/2011/04/30/2033246.html Go语言是Google继Simple语言之后推出的第二款编程语言,该语言的被号称是:互联网时代的C。这就意味着:1.具有互联网web开发所需的特点,即开发高效;2.具有C语言一样的运行速度,即运行高效。相信这两个特点会让你找到归宿了吧。 1. 安装 Windows上的安装步骤如下: 下载Go开发环境:http://code.google.com/p/gomi...阅读全文
[翻译] effective go 之 Blank identifier
Blank identifier Go defines a special identifier _, called the blank identifier. The blank identifier can be used in a declaration to avoid declaring a name, and it can be used in an assignment to discard a value. This definition makes it useful i...阅读全文
beego 0.9.0 中智能路由AutoRouter的使用方法及源码解读
了解beego的开发者肯定知道,beego的路由设计来源于sinatra,原来是不支持自动路由的,每一个路由都要自己配置的,如: type MainController struct { beego.Controller } func (this *MainController) Get() { this.Ctx.WriteString("hello world") } func main() { beego.Router("/", &MainController{}...阅读全文
go语言 Linux 配置
GO安装 http://code.google.com/p/go/downloads 配置参考 https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/02.3.md 1. 配置 环境变量 有的系统是~/.profile ~/.bashrc 记得把go 包安装到/usr/local,可以是其他目录,担心引起其他不必要的 然后重启 cmd...阅读全文
google go 语言介绍(二)
分号 你可能已经注意到我们的程序没有分号。在Go的代码中,唯一你经常可以看到分号的地方是分割for循环的子句。在每句语句的结尾分号并不是必须的。 实际上,go像C或Java这样的常规语言一样使用分号,但是这些分号被自动的插入到语句的结尾处,你不需要手工的去输入这些分号。 关于分号更细节的信息可以查看语言规范,但是在本文中你所要知道的就是你不需要在语句末尾加上分号。(如果要在一行中写多个语句,你就需要在语句结尾加上分号)作为特别的帮助,你可以在大括号关闭符号前的语句省略分号。 这种方式提供了一个...阅读全文