面试真题

Go · 简单 · 百度

切片和数组的区别

简单 Go 🎤 百度
参考答案
结论:数组是固定长度的值类型,切片是动态长度的引用类型。区别:1. 数组长度编译期确定且属于类型([2]int与[3]int不同),赋值传参时整体拷贝;切片长度运行时可变,赋值时仅拷贝切片头。2. 数组在内存中直接连续存放元素;切片存放指向底层数组的指针、len、cap。3. 数组不能扩容,切片可append动态扩容。4. 函数传数组开销随长度增大,传切片开销固定但可能修改原底层数组。示例:var a [3]int; b:=a(值拷贝);s:=a[:](切片共享a的数组)。
题目整理自公开面经,答案由校招宝自研生成,仅供参考