MST

星途 面试题库

面试题:Go语言中切片创建与初始化的常用方法有哪些

请详细列举并说明Go语言切片(Slice)创建与初始化的至少三种常用方法,并简述它们各自的特点。
36.7万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

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