go语言整形切片初始化 go 切片定义( 二 )


官方描述(片段)
即切片是一个抽象层,底层是对数组的引用 。
当我们使用
构建出来的切片的每个位置的值都被赋为interface类型的初始值nil,但是nil值也是有大小的 。
而使用
来进行初始化时,虽然生成的切片中不包含nil值,但是无法通过设置的指针变量来完成入队和出队的操作,只能使用append()函数来进行操作
在go语言中,切片是一片连续的内存空间加上长度与容量的标识,比数组更为常用 。使用 append 关键字向切片中追加元素也是常见的切片操作
正是基于此,在使用go语言完成循环队列时,首先想到的就是使用make(type, len, cap)关键字方式完成切片初始化,然后使用append()函数来操作该切片 , 但这一方式出现了很多问题 。在使用append()函数时 , 切片的cap可能会发生变化,用不好就会发生扩容或收缩 。最终造成的结果是一个四不像的结果 , 入队和出队操作变得与指针变量无关 , 失去了作为循环队列的意义,用在顺序队列还算合适 。
参考博客go语言整形切片初始化:
Go语言中的Nil
Golang之nil
Go 语言设计与实现
关于go语言整形切片初始化和go 切片定义的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读