切片(slice)
# 切片(slice)
切片描述底层数组的一段区域,包含长度和容量。append 可能分配新数组,因此追加后不能假设新旧切片仍共享相同存储。
hosts := []string{"api-1", "api-2"}
hosts = append(hosts, "api-3")
window := hosts[1:]
snapshot := append([]string(nil), window...)
1
2
3
4
2
3
4
nil 切片可以读取、遍历和追加。需要预知容量时使用 make([]T, 0, capacity) 减少扩容。长期保存一个大切片的小窗口可能让整个底层数组无法释放,此时应复制需要的数据。