- 博客(7)
- 收藏
- 关注
原创 Common Tools
My EditorVimPYENVcurl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bashMy Shellzshyum install zshOh-my-zshwget https://github.com/r
2015-11-21 17:32:10 1749
原创 reflect 库使用小结
Golang 通过 reflect 包向使用者提供了反射机制,能够很方便地获取到变量的运行时信息,但是其反射功能并没有JAVA类语言强大,它能够根据函数名字符串定位到函数,但是并不能根据类型字符串生成类型实例,因为GO是静态编译的,除非程序初始化时先生成所有所需类型的Type变量并记录下来。毕竟反射并不是编程语言必须的东西,个人觉得只有在写 IOC 类框架的时候会用的比较多。这里就这个包的使用进行各
2015-11-19 13:05:23 1038
原创 unsafe 库使用小结
unsafe 库让 golang 可以像 C 语言一样操作计算机内存,但这并不是 golang 推荐使用的,能不用尽量不用,就像它的名字所表达的一样,它绕过了golang的内存安全原则,是不安全的,容易使你的程序出现莫名其妙的问题,不利于程序的扩展与维护。
2015-11-18 15:29:11 5471 1
原创 sync/atomic 库使用小结
sync/atomic 库提供了原子操作的支持,原子操作直接有底层CPU硬件支持,因而一般要比基于操作系统API的锁方式效率高些。本文对 sync/atomic 中的基本操作进行一个简单的介绍。原子增值CAS原子导出值原子导入值原子交换值
2015-11-18 12:51:26 14187 2
原创 Golang 闭包
很多编程语言都闭包的概念,最常见闭包使用的应该是 javascript 了。其实闭包不是什么新奇的概念,就是函数与函数特定环境的组合,闭包使用了本函数之外定义的变量。Golang 中也有所谓的闭包,本文对Golang中的闭包的概念通过实际示例进行个简单的说明。
2015-11-17 16:37:51 5015 3
原创 GO 利用 sync 库实现 Barrier
Barrier 用于多个线程完成状态的同步。在linux的系统库中有相关的实现,在import ( "sync" "time")type Barrier struct { curCnt int maxCnt int cond *sync.Cond}func NewBarrier(maxCnt int) *Barrier { mutex := n
2015-11-16 15:54:40 1413
原创 Go 语言 make & new
make 与 new 都是 Go 语言分配变量内存的方式,其中 make 主要针对 slice、map 与 chan 变量类型的内存分配以及相应内部结构的初始化,而 new 可以申请任何类型变量内存,但是拿到内存后会赋零值。
2015-11-05 23:46:36 1161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人