面试题答案
一键面试- 使用字面量创建
- 示例代码:
s := []int{1, 2, 3}
- 特点:
- 简洁直观,适合在创建时就明确知道切片元素值的场景。
- 可以直接在创建时初始化元素,元素个数即切片的长度。
- 使用
make
函数创建- 示例代码:
s := make([]int, 5) // 创建长度为5,初始值为0的int类型切片 s := make([]int, 5, 10) // 创建长度为5,容量为10的int类型切片
- 特点:
- 可以灵活指定切片的长度和容量。如果只指定长度,容量默认和长度相等。
- 适合预先知道大概元素数量,避免频繁扩容的场景,提升性能。长度确定后,可以通过索引直接访问和修改元素,未初始化的元素会使用其类型的零值。
- 基于已有切片创建
- 示例代码:
original := []int{1, 2, 3, 4, 5} newSlice := original[1:3] // 从original切片的索引1到索引3(不包含索引3)创建新切片
- 特点:
- 新切片和原切片共享底层数组,对新切片元素的修改会反映到原切片上,反之亦然。
- 可以根据已有切片灵活截取部分元素创建新切片,方便数据处理和复用底层数组资源。新切片的长度是截取的元素个数,容量是从截取的起始位置到原切片末尾的元素个数。