Golang 切片在内存中的形式

Jackey Golang 2,638 次浏览 , 1条评论

代码示例:

package main

import "fmt"

func main()  {
  var intArr [5]int = [...]int{1, 22, 33, 66, 99}
  slice := intArr[1:3]
  fmt.Println("intArr=", intArr)
  fmt.Println("slice 的元素是 = ", slice)
  fmt.Println("slice 的元素个数 = ", len(slice))
  fmt.Println("slice 的容量 = ", cap(slice))
}

内存图:

针对上面的分析图总结

  1. slice 的确是一个引用类型
  2. slice 从底层来说,其实就是一个数据结构体(struct 结构体)
type slice struct {
    ptr *[2]int
    len int
    cap int
}

 

一条评论

  1. 新闻头条 2020年2月20日 下午3:17 回复

    文章还不错支持一下

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Go