- 博客(6)
- 资源 (1)
- 收藏
- 关注
原创 用于同步时通道和mutex的区别
用于同步时通道和mutex的区别 通道是Go语言内建的特性之一,用来在程序内部传输数据,很容易用于同步目的。比如构建一个缓存为1的channel c:=make(chan bool,1)`,当需要独占的获得时,就可以,而要释放时,执行c。 Mutex是sync包定义的一个类型,实现了互斥锁,定义了Lock()/Unlock()方法来获得/释放锁. 从功能角度看,使用通道
2013-12-23 13:48:04 671
原创 Go的reflect机制和reflect包
Go的reflect机制和reflect包 概述 虽然Go是静态语言,然而还是提供了reflect机制,并且定义了reflect包来辅助反射处理。在reflect包中,最重要的两个类型就是Type和Value,分别从类型、值的角度来描述一个Go对象。 Type类型是一个接口,这个接口实现了String() string方法。Value类型是一个结构,但是并未定义任何导出字段,同样定义了Str
2013-12-16 21:04:47 3449
原创 生成全排列---reflect包的一个应用
生成全排列---一个reflect包的应用 在测试函数时,经常需要生成一个全排列,确保函数可以正确处理所有的输入情况,Go语言的特性以及reflect包的存在,使得在Go语言中实现这样的功能非常容易。 输入: 使用NewPerm()函数来生成一个Permatator NewPerm(k interfac{],less Less) (*Permutator,error) 我们选择使用
2013-12-16 18:44:03 1185
原创 container包中的三个数据类型(-)
Golang在container包中提供了三个常用的数据类型,Ring,Heap,List。这一篇文章简单谈谈List 使用import "container/list"来导入这个包,该包定义了List类型,是一个元素可以为任意类型的双链表。 List类型并未导出任何字段,其元素类型为Element。 List表示一个双链表,其零值表示一个可用的链表 使用l
2013-11-17 09:35:19 811
翻译 Arrays,slices (and strings): The mechanics of 'append'
Arrays,slices (and strings): The mechanics of 'append' 介绍 过程式编程语言中,一个最常见的特性就是数组这个概念。数组看起来很简单,但是把它们加入语言时有很多问题需要考虑啊,例如: 大小固定还是可变? 大小是否是类型的一部分? 多维数组看起来是什么样子? 空数组有含义吗? 这些问题的答案影响到一个决策,数组
2013-11-02 20:25:13 649
翻译 介绍Go竞争检测器
原文连接http://blog.golang.org/race-detector 介绍: 竞争条件是最狡诈的、最难以找到的编程错误。通常,在代码被布置到生产环境很久以后,它们才会出现并且造成奇怪的、神秘的错误。尽管Go语言的并发机制使得更容易的编写出干净的并发代码,依然无法避免竞争条件的出现。小心、勤勉以及测试是必须的。工具也可以提供帮助。 我们很高兴的宣布Go1.1包含了一个竞争检测器,一
2013-11-01 23:30:51 1666
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人