go语言常见问题

package github.com/codegangsta/martini: exec: "git": executable file not found in %PATH% 解决方法:这个是有与没有安装“git”的环境变量造成的,到http://code.google.com/p/msysgit/downloads/list网站下载并安装。然后再打开Git Bash,在Git Bash输入 go get XXXX/XXXX/XXXX 即可。 如果上面不能下 下载地址:http://www.o...阅读全文

博客园 2014-01-12 00:45 guanpanpan

mac上安装go语言

我将在mac os x的开发机器上安装go语言的开发环境。 go语言运行包下载地址:http://code.google.com/p/go/downloads/list 这里我选择安装 go1.0.3.darwin-amd64.pkg 在mac上点击安装,运行包自动安装到/usr/local/go中,这样在命令终端就可以运行go命令了 这里,我把go编辑器安装到我的xcode应用程序中,由于我的xcode装的是4.x以上 在/usr/local/go/misc中,可以看到有很多编辑器版本,这里找...阅读全文

博客园 2013-05-13 22:48 code-style

go语言基础教程1

什么是Go?来自于网站:   Go 编程语言是一个使得程序员更加有效率的开源项目。Go 是有表达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核和网络应用,而新奇的类型系统允许构建有弹性的模块化程序。Go 编译到机器码非常快速,同时具有便利的垃圾回收和强大的运行时反射。它是快速的、静态类型编译语言,但是感觉上是动态类型的,解释型语言。   首先介绍go语言的特性-- 并行  :Go 让函数很容易成为非常轻量的线程。这些线程在Go 中被叫做goroutines; Channel : 这些...阅读全文

博客园 2013-05-03 13:51 GODYCA

[golang]让golang支持泛型编程的一个方案实现

本博客原创博文版权所有 @Ally vipally@gmail.com 仅供交流学习使用用于商业用途请联系原作者 转载请注明出处:http://blog.sina.com.cn/ally2014 总所周知,golang现在不支持泛型编程,对于习惯了C++泛型编程思想的程序员来说无疑是一个硬伤。 虽然golang interface{}多少可以满足一些泛型需求,但是无论在效率和编程手法上,都无法达到C++ template那样的灵活性。出于对编译器效率的考虑,官方暂时还没有golang支持泛型的方...阅读全文

新浪博客 (2014-01-20 23:14:38) ally2014

go语言的init函数

go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性, 有下面的特征: 1 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等 2 每个包可以拥有多个init函数 3 包的每个源文件也可以拥有多个init函数 4 同一个包中多个init函数的执行顺序go语言没有明确的定义(说明) 5 不同包的init函数按照包导入的依赖关系决定该初始化函数的执行顺序 6 init函数不能被其他函数调用,而是在main函数执行之前,自动被调用 下面这个示例摘自...阅读全文

博客园 2013-04-21 20:43 youyou

让go语言调用外部程序时支持管道符

有一个需求是用go语言程序调用外部命令时,允许使用管道符,如 ls | wc -l   Go语言对外部命令的调用进行了一定的封装,下面来试一下:   package main      import (    "os"    "os/exec"   )      func main() {    run1()   }      func run1() {    cmd := exec.Command("ls", "|", "wc", "-l")   cmd.Stdout ...阅读全文

开源中国博客 2013-09-26 10:34 qinerg

阅读go语言源代码1

前面大概说过bison与yacc的语法,那么其实go也是用bison来实现的,下面来说说怎么阅读go语言源代码。要看代码首先得找到代码的入口,怎么找呢?你可能首先想到grep main是的,一般来说这是一个没有争议的办法,但是对于go语言来说,这个办法对,也不对。怎么说呢?我们用gdb来进行debug就会看到所有的go语言程序的入口居然都在src/lib9/main.c里的main函数。 #include <u.h> #define NOPLAN9DEFINES #include <libc.h...阅读全文

ITEYE博客 2010-07-02 21:48 javatgo

对比C, java, go 递归计算fibonacci(40) 的性能

// fibonacci.c #include <stdio.h> int main() {         printf("%d", fibonacci(40)); } int fibonacci(int n) {         if (n < 2) {                 return 1;         }         return fibonacci(n - 2) + fibonacci(n - 1); } 编译: CFLAGS="-march=corei7...阅读全文

开源中国博客 2014-06-21 18:52 ZhouJunhua

为何要用go语言

GO作为一门新兴语言,为什么会在众多新语言中脱颖而出?为什么曾一度出现在TIOBE排行榜上面,在本文中我们就来为大家解开其中的神秘面纱。 Go是一种根本性的反思本机语言,在很大程度上改善了C语言的不足地方并且保持了C的极简主义。已经有好多程序员都把Go语言描述为是一种所见即所得(WYSIWYG)的编程语言。这是说,代码要做的事和它在字面上表达的意思是完全一致的。 在这些新语言中,包含D,Go,Rust和Vala语言,Go曾一度出现在TIOBE的排行榜上面。与其他新语言相比,Go的魅力明显要大...阅读全文

博客园 2012-08-21 16:31 zbba

go语言中的defer、panic、recover处理异常

go语言中的defer就像c++中的析构函数,但是go语言中defer的对象是函数(或者对象的方法),defer能保证在函数结束最后执行该方法(函数),但是有例外:如果在定义的方法中defer定义的方法如果在panic后面,defer定义的方法就无法执行到。 panic 是用来表示非常严重的不可恢复的错误的。在Go语言中这是一个内置函数,接收一个interface{}类型的值作为参数。panic 的作用就像我们平常接触的异常。不过Go可没有try…catch,所以,panic一般会导致程序...阅读全文

开源中国博客 2013-06-14 10:58 DEC_LIU

go语言编程

package 指明源文件所在的包 func 用于定义函数 go里面除了for循环的初始化用到;,其他大部分都不需要 go中没有while循环,不过可以利用 for condition来模拟while   编译: go builde 编译的文件名 定义一个变量,比如字符串 var s string = "" go也自动推导出类型 var s = ""; 也可以 s:="" :=用在值声明并且初始化 05 package main 07 import ( 08 "os...阅读全文

博客园 2013-04-24 20:21 linyilong3

msgpack在java/c和go中序列化的区别-解决

既然已经知道msgpack-java/msgpack-c里,默认情况下把class pack成类似json-array 而msgpack-go,默认情况下把class pack成类似json-map 顺着这个,翻看msgpack-Go的代码,找到了MsgpackHandle 。。。。中间过程省略 最后找到答案,其实msgpack-go已经提供好api package main import ( "fmt" "github.com/ugorji/go/codec" ) type ...阅读全文

开源中国博客 2014-02-27 15:17 咖啡伴侣

go语言入门

go 语言下载地址: http://code.google.com/p/go/downloads/list 下载 轻量开发工具 http://code.google.com/p/liteide/   我为什么喜欢Go语言 使用CGO封装Windows API 用Go写Windows桌面应用 - 使用Form 用Go写Windows桌面应用 - 使用资源文件 用Go写Windows桌面应用 - 使用窗体设计器   http文件共享 // test project main.go package...阅读全文

博客园 2012-10-10 20:21 meetrice

go语言入门-安装-编写-运行

一、安装 把下载的GO语言解压后放到C盘。 二、进行变量设定。 在环增变量-系统变量中我们共增加了五个全局变量,具体名字是 1、变量名:GOBIN变量值:c:\go\bin它的意思就是GO的编译目录在c:\go\bin这个文件夹里。 2、变量名:GOROOT变量值:c:\go它的意思就是GO的主目录在c:\go这个文件夹里. 3、变量名:GOOS变量值:mingw如果你下载的是第二个地址的话,这个变量值应当是windows.这是为什么呢,因为我们C:\go\pkg目录下有个文件夹名...阅读全文

ITEYE博客 2012-10-08 17:27 nanjingjiangbia 等

windows下 sublime text2 跳转查看go源码

1.下载ctags  网站被墙,点此下载    下载后的exe文件随便放在哪个目录,将目录添加到 环境变量 path中.然后 cmd,输入ctags --help,显示一堆帮助文字,说明就可以了。 3. 在sublime text 2中安装CTAGS, ctrl + shift + p输入CTAGS回车就行了,不知道怎么安装包的请百度。 4. 在sublime text 2打开$GOROOT下src\pkg目录(例如 D:\go\src\pkg),在左侧边栏pkg文件夹上右击 ...阅读全文

开源中国博客 2013-04-18 12:42 阳光灿烂的日子

go语言25个关键字总结

var和const :变量和常量的声明 var varName type  或者 varName : = value package and import: 导入 func: 用于定义函数和方法 return :用于从函数返回 defer someCode :在函数退出之前执行 go : 用于并行 select 用于选择不同类型的通讯 interface 用于定义接口 struct 用于定义抽象数据类型 break、...阅读全文

开源中国博客 2013-07-10 16:54 T_star

go资料汇总

Go官方http://golang.org/Go代码http://code.google.com/p/go/http://code.google.com/p/gomingw/downloads/listGo 语言中文翻译项目http://code.google.com/p/golang-china/Go语言中文论坛http://bbs.golang-china.org/在线学习http://go-tour-zh.appsp0t.com/#1http://www.mikespook.com/lea...阅读全文

ITEYE博客 2012-11-13 14:51 afeifqh

[go语言]避免过度重构

golang-nuts上有人提了一个问题[1],询问怎么样把减少两个类似数据结构和算法的重复代码。简而言之,有两个struct:QuickFindSet和QuickUnionSet,它们各有Count, IsConnected, Find, Union等方法。他发现这两个struct的一些函数的实现是一样的,因此他希望能消除这些重复代码。 ? www.usr.cc 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 0...阅读全文

博客园 2013-03-25 20:53 deansinaean