根据以下内容，解释Go语言中的复合数据结构：slice和map。
回答需包含以下内容：
1. 一段简短的介绍，字数不超过100字
2. 两个要点来解释slice
3. 两个要点来解释map
user
1. 简短介绍：Go语言中的复合数据结构slice和map分别用于动态数组和键值对的存储与操作。

2. 解释slice的两个要点：
   - Slice是基于数组的动态数组，能够自动调整大小，使用make函数创建。
   - Slice可以通过append函数添加元素，通过索引访问和修改元素。

3. 解释map的两个要点：
   - Map是存储键值对的集合，键必须是唯一的，使用make函数创建。
   - Map通过键快速查找值，键和值可以是任意类型。
assistant