golang源码分析–slice
切片基础概念: 切片是围绕动态数组的概念构建的,可以按需自动增长和缩小。(注意:切片传递的是指针的拷贝值,所以可以在函数里面修改指针指向的值,对外有影响) 切片的自动增长是通过append()函数来实现的 切片的底层内存也是在连续块中分配的,所以切片还能获得索引,迭代以及为垃圾回收优化的好处。 源码分析: 结构体定义 type slice struct { array unsafe.Pointer len int cap int } slice的结构体包含三个参数,指针,长度,容量 所以传递一个切片切片需要24字节的内存:指针字段需要8字节,长度和容量字段分别需要8字节。 切片
用户评论