返回顶部
首页 > 资讯 > 后端开发 > GO >关于旧数组被遗漏,当Slice引用到新创建的数组时,当golang中超过cap时
  • 221
分享到

关于旧数组被遗漏,当Slice引用到新创建的数组时,当golang中超过cap时

2024-02-10 21:02:45 221人浏览 薄情痞子
摘要

PHP小编柚子在本文中将为大家介绍一个有关旧数组被遗漏的问题,并解释在golang中当Slice引用到新创建的数组时,当超过cap时会发生什么。这个问题涉及到Slice和数组的动态变化

PHP小编柚子在本文中将为大家介绍一个有关旧数组被遗漏的问题,并解释在golang中当Slice引用到新创建的数组时,当超过cap时会发生什么。这个问题涉及到Slice和数组的动态变化,对于正在学习或使用Golang的开发者来说,是一个需要了解和掌握的重要知识点。通过本文的解答,希望能帮助大家更好地理解和应用这一概念。

问题内容

当创建新数组并且切片或任何其他变量不再引用旧数组时,切片中的基础数组会发生什么?

假设我们创建一个长度为 3 且上限为 4 的空切片 然后当我们尝试附加一个超出切片容量的元素时。

slice:=make([]int,3,4)
    slice = append(slice, 6,7) //exceeds the cap, when appending 7 
    fmt.Println(slice)

在上面的程序中,旧数组会发生什么,因为它不再被切片或任何其他变量引用,它的内存会被释放还是会保留在内存中直到程序完成执行? p>

解决方法

如果该数组中的任何位置都没有实时引用,它将被垃圾收集。如果至少有一个对数组中任一元素的引用,则该数组将保留在内存中,直到该引用消失为止。

以上就是关于旧数组被遗漏,当Slice引用到新创建的数组时,当golang中超过cap时的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: 关于旧数组被遗漏,当Slice引用到新创建的数组时,当golang中超过cap时

本文链接: https://lsjlt.com/news/563246.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作