4 集合类型
本章第一节介绍了Go语言中的值、指针和及引用类型,因为对于本章其余部分和后续章节,理解这些概念是必要的。Go语言的指针在语法构成和语意上与C和C++中的指针类似,只是Go不支持指针运算,这样就消除了能够影响C和C++程序的一些潜在bug。Go语言也无需使用free()函数或delete操作,因为Go语言拥有垃圾回收器且可自动管理内存。Go语言中引用类型的值以一种独特而简单的方式创建,一旦完成创建,就可以像Java或Python中的对象引用那样使用。Go语言中的值和其它大多数主流语言一样具有类似的工作原理。
本章的其他小节将专门介绍Go语言的内置集合类型,包括了其所有内置集合类型:数组、切片和映射。这些类型是如此的高效且用途广泛,能够满足几乎所有需求。标准库中也提供了一些额外的更加专业的集合类型container/heap、container/list和container/ring,对于一些特殊情况,它们可能更加高效。后面的章节给出了一些简短的例子来介绍heap和list,第6章还给出了一个如何创建平衡二叉树的例子。