芯片资讯
你的位置:ATMEGA系列ATMEL芯片-亿配芯城 > 芯片资讯 > 数组中如何增加切片的容量
数组中如何增加切片的容量
- 发布日期:2023-12-31 08:03 点击次数:101 切片扩容
相对于数组而言,使用切片的一个好处是:可以按需增加切片的容量。
Golang 内置的 append() 函数会处理增加长度时的所有操作细节。要使用 append() 函数,需要一个被操作的切片和一个要追加的值,当 append() 函数返回时,会返回一个包含修改结果的新切片。
函数 append() 总是会增加新切片的长度,而容量有可能会改变,也可能不会改变,这取决于被操作的切片的可用容量。
num := []int{1, 2, 3, 4, EEPROM带电可擦可编程存储器芯片大全 5} // 创建新的切片, 电子元器件PDF资料大全其长度为 2 个元素, ATMEGA系列ATMEL芯片COM容量为 4 个元素 myNum := num[1:3] // 使用原有的容量来分配一个新元素 // 将新元素赋值为 60 myNum = append(myNum, 芯片交易网IC交易网 60)
执行上面的代码后的底层数据结构如下图所示:
此时因为 myNum 在底层数组里还有额外的容量可用,CMOS图像传感器集成电路芯片append() 函数将可用的元素合并入切片的长度,并对其进行赋值。
由于和原始的切片共享同一个底层数组,ATMEGA系列-ATMEL芯片myNum 中索引为 3 的元素的值也被改动了。
如果切片的底层数组没有足够的可用容量,append() 函数会创建一个新的底层数组,将被引用的现有的值复制到新数组里,再追加新的值,此时 append 操作同时增加切片的长度和容量:
// 创建一个长度和容量都是 4 的整型切片 num := []int{1, 2, 3, 4} // 向切片追加一个新元素 // 将新元素赋值为 5 myNum := append(num, 5)
当这个 append 操作完成后,newSlice 拥有一个全新的底层数组,这个数组的容量是原来的两倍:
函数 append() 会智能地处理底层数组的容量增长。
在切片的容量小于 1000 个元素时,总是会成倍地增加容量。一旦元素个数超过 1000,容量的增长因子会设为 1.25,也就是会每次增加 25%的容量(随着语言的演化,这种增长算法可能会有所改变)。
相关资讯
- 如何解决冗长的if...else条件判断(上)2024-01-04
- 如何解决冗长的if...else条件判断(下)2024-01-04
- 如何选择超声波储罐液位传感器2024-01-03
- DigiKey在2023年第三季度增加40,000 多个新库存零件2024-01-02
- 如何实现一种基于FPGA全数字高码率QPSK调制设计?2024-01-02
- 毫米波雷达如何测量速度和位置 毫米波雷达和超声波雷达有什么区别2023-12-31