当前位置: 首页 > 网络应用技术

如何理解GO语言的切片

时间:2023-03-07 19:49:26 网络应用技术

  GO语言中的切片在动态阵列中很受欢迎。我们都知道阵列的长度是固定的。声明声明后,阵列的长度是固定的;您可以继续增加切片的长度。让我们看一下切片的数据结构是什么。

  如上所述:

  数组指向的地方是连续的内存空间,存储了切片的元素;连续内存空间+长度+容量形成切片。在这里,它可以被视为阵列的摘要,因为如果Len和Cap保持不变,则切片的本质是切片的本质,是切片阵列的本质。但是切片和帽子会改变,所以这是切片。

  切片陈述:

  如果我们想获得一部分,我们可以

  通过M [start:end]方法获得部分切片。它包含启动不包括结束出价到原始切片元素的末尾。让LET在下面查看一个有趣的代码,然后了解切片:

  上述代码输出将是多少?一开始,您是否认为第一个输出是:[1,2,4,5,6]第二个输出是:[7,2,4,5,6]

  正确的答案绝对不是。这两个正确的输出都是:[1,2,4]

  为什么?让我们尽快分析此代码

  那么两个输出均为[1,2,4]。

  在这里,我们了解切片的膨胀机制:当帽子不够,如果切片元素的数量超过1024,则它会加倍;如果元素大于1024,则扩展为1.25次,每次扩展后,每个扩展将成为一个新切片。