购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.7 本章小结

本章重点介绍了Go语言中几种常用的数据结构,具体包括以下内容。

❑ 字节:作为Go语言中基础类型,用于表示二进制数据,是I/O操作的核心结构。

❑ 数组和切片:数组是一种固定长度的内存块,切片则是在此基础上提供了更灵活的封装和可变长度的特性。

❑ 字符串:字符串是不可变的字节序列。它可以与切片相互转换,但转换过程会涉及内存数据的复制。

❑ map类型:map是Go语言基于散列表实现的Key/Value集合,它支持快速查询但不是并发安全。

❑ Channel类型:Channel是专为Goroutine间同步和通信设计的,它的内部实现采用了环形缓冲数组。

❑ 接口类型:接口是Go语言实现多态的关键。内部通过iface(eface)和itab等结构实现接口的调用。

这些基础数据结构是存储过程中的核心组成部分。深入理解这些数据结构,将有助于我们理解数据在不同组件和介质之间的流转,也为我们理解各种存储方式也提供了重要参考。例如,切片的内存管理机制,map的散列表的存储方式,以及Channel的环形数组,都是经典的存储结构。

值得一提的是,Go语言中的某些符号(例如“<-”)或关键字(如for-range,select),可能初看之下难以理解,实际上在编译过程中它们会被转换为相应的函数调用,这并无特别之处。Go语言的编译器在编译期间完成了大量辅助工作,为开发者提供了一个更便捷、灵活的编程环境。编译期间关键字和符号如何转换为函数调用的具体内容,读者可以参考图2-15。

图2-15 关键字转换示意 iINvyb62MF+JABeYf1uy/9tONd93T8PkKTYfyCW2mAqqu5gtYsBCupAG/5MSMRMf

点击中间区域
呼出菜单
上一章
目录
下一章
×