Go语言容器(container)
变量在一定程度上能满足函数及代码要求。如果编写一些复杂算法、结构和逻辑,就需要更复杂的类型来实现。这类复杂类型一般情况下具有各种形式的存储和处理数据的功能,将它们称为“容器(container)”。
在很多语言里,容器是以标准库的方式提供,你可以随时查看这些标准库的代码,了解如何创建,删除,维护内存。
本章将以实用为目的,详细介绍数组、切片、映射,以及列表的增加、删除、修改和遍历的使用方法。本章既可以作为教程,也可以作为字典,以方便开发者日常的查询和应用。
在很多语言里,容器是以标准库的方式提供,你可以随时查看这些标准库的代码,了解如何创建,删除,维护内存。
本章将以实用为目的,详细介绍数组、切片、映射,以及列表的增加、删除、修改和遍历的使用方法。本章既可以作为教程,也可以作为字典,以方便开发者日常的查询和应用。
其它语言中的容器
- C语言没有提供容器封装,开发者需要自己根据性能需求进行封装,或者使用第三方提供的容器。
- C++ 语言的容器通过标准库提供,如 vector 对应数组,list 对应双链表,map 对应映射等。
- C# 语言通过 .NET 框架提供,如 List 对应数组,LinkedList 对应双链表,Dictionary 对应映射。
- Lua 语言的 table 实现了数组和映射的功能,Lua 语言默认没有双链表支持。
- 本章内容:
- 1. Go语言数组详解
- 2. Go语言多维数组简述
- 3. Go语言切片详解
- 4. Go语言append()为切片添加元素
- 5. Go语言copy():切片复制(切片拷贝)
- 6. Go语言从切片中删除元素
- 7. Go语言range关键字:循环迭代切片
- 8. Go语言多维切片简述
- 9. Go语言map(Go语言映射)
- 10. Go语言遍历map(访问map中的每一个键值对)
- 11. Go语言map元素的删除和清空
- 12. Go语言map的多键索引——多个数值条件可以同时查询
- 13. Go语言sync.Map(在并发环境中使用的map)
- 14. Go语言list(列表)
- 15. Go语言nil:空值/零值
- 16. Go语言make和new关键字的区别及实现原理