Go 数组与切片(slice)的区别:底层结构、扩容与传参行为详解
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
数组:长度固定([5]int),值类型,传参整体拷贝,长度是类型的一部分([3]int 与 [4]int 是不同类型)。切片:动态长度([]int),引用类型,底层是 struct{ptr, len, cap},传参共享底层数据。声明:数组 var a [5]int;切片 var s []int 或 make([]int, len, cap)。切片可从数组/切片切出(s = a[1:3])。日常优先用切片;函数参数传数组想修改原值需传指针。
回复
0 条回复