golang basic type - WinChua/blog GitHub Wiki

1. slice

slice的结构

type slice struct {
    array unsafe.Pointer
    len   int
    cap   int
}

一个slice结构包含了两个部分: 1. 元数据, 用于描述当前slice的长度,容量以及管理的内存指针位置; 2. 实际内容, 指针指向的内存区域; 函数调用的时候两种方式的区别

  1. 传值, 函数内只能够修改指针指向的内存区域; 无法修改len, cap等数据
  2. 传指针, 函数内能够修改len,cap, 指向内存区域;