golang test说明解读

go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试 通过go help test可以看到go test的使用说明: 格式形如: go test [-c] [-i] [build flags] [packages] [flags for test binary] 参数解读: -c : 编译go test成为可执行的二进制文件,但是不运行测试。 -i : 安装测试包依赖的package,但是不运行测试。 关于build flags,调用go help buil...阅读全文

博客园 2013-01-22 10:26 yjf512

一个java和golang(go语言)通信的例子。

go语言是一个系统级语言,好处非常多。虽然是一个静态编译型语言,但可以像动态语言一样写程序,语言本身可以提供编写应用程序所需的基本组件,而不用引入第三方的包。如果了解c++、java、python等,会对其简洁和强大有更深的认识,c++实在过于繁琐,java也没有想象的简单,python的效率和go不是一个数量级的。那么多的特性,印象最深的就是其对并发的支持,优雅而高效。一般情况下并发通过进程、线程、基于异步IO的回调来实现,进程和线程不能大量的创建,如超过1万个系统资源就不堪重负了,回调可以尽...阅读全文

CSDN博客 2013-10-16 22:10 qfsun

golang: 详解interface和nil

golang的nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。nil是预先说明的标识符,也即通常意义上的关键字。在golang中,nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果未遵循这个规则,则会引发panic。对此官方文档有明确的说明:http://pkg.golang.org/pkg/builtin/#Type golang interface nil gdb error golang的ni...阅读全文

CSDN博客 2014-01-22 16:16 kjfcpua

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