分类 golang 中的文章

slice的坑点

slice的循环的坑 当迭代时 range 关键字会返回两个值,第一个是索引值,第二个是索引位置值的拷贝。 注意:返回的是值的拷贝而不是引用,如果我们把值的地址作为指针使用,会得到一个错误,来看看为啥:

     //付费笔数排行
        var ss Sources
        for _, v3 := range items { …

阅读全文

修改Golang源码后如何编译生效

操作环境为:Golang 1.5版本,其他版本未验证

1. 修改了C:\Go\src\下的源码,只要执行命令 go install -a -v std cmd 即可生效

E:\gopro\src\tvdatatools>go install -a -v std cmd
runtime
errors
unicode/utf8
unicode …

阅读全文

Go 设计模式(Go patterns)

1.Generator(发生器)

在Google IO 2012大会中提到的Go pattern,记录如下,以便加深理解。 Go patterns 可以理解为Go的设计模式,这个往往是在实践中遇到的一些典型场景而总结出来的通用的方法论。 Generator可以理解为发生器

//golang partens
//Generator: function …

阅读全文

Go设计模式(Go patterns)参考文献和视频

并发是Golang中比较复杂也是困难的部分,设计上需要考虑是否死锁和goroutine是否未推出导致一直占有资源等问题 这里给出了一些优秀的文章链接供参考。

参考文献

  1. RobPike在Google IO 2012大会 上 关于并发的介绍(DOC链接和视频链接)

(1) …

阅读全文

Go基础知识学习6 接口

Golang接口定义使用interface来声明,它相对于其他语言最大的特定就是接口定义和实现的关联性仅仅依赖接口的名字和声明,无需显式声明。 1. 接口定义和实现 在下面这个例子中,定义了两个自定义类型city country 和接口类型IName city、country分别实现了接口IName, 它们不需要代码上不需要去和IName关 …

阅读全文

Go基础知识学习7并发

Golang原生支持并发。并发的最小单位是goroutine,相互之间的通信采用channel. 这里不涉及锁等复杂的内容,先简单的弄个例子了解一下Golang并发实现的简洁。

例子,实现slice的求和

具体步骤:创建两个goroutine 一个对slice的前一半数据求和,一个对slice后一半数据求和,最后综合两个结果 完整的代码见: …

阅读全文