ATMEGA系列ATMEL芯片-亿配芯城-ATMEGA系列ATMEL芯片
你的位置:ATMEGA系列ATMEL芯片-亿配芯城 > 话题标签 > 切片

切片 相关话题

TOPIC

切片 Go中提供了一种灵活,功能强悍的内置类型Slices切片(“动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。 切片中有两个概念:一是len长度,二是cap容量,长度是指已经被赋过值的最大下标+1,可通过内置函数len()获得。 容量是指切片目前可容纳的最多元素个数,可通过内置函数cap()获得。切片是引用类型,因此在当传递切片时将引用同一指针,修改值将会影响其他的对象。 s := []int {1,2,3 } //直接初始化切片s := arr[:
通过切片创建新的切片 切片之所以被称为切片,是因为创建一个新的切片,也就是把底层数组切出一部分。通过切片创建新切片的语法如下: slice[i:j]slice[i:j:k] 其中 i 表示从 slice 的第几个元素开始切,j 控制切片的长度(j-i),k 控制切片的容量(k-i),如果没有给定 k,则表示切到底层数组的最尾部。下面是几种常见的简写形式: slice[i:] // 从 i 切到最尾部slice[:j] // 从最开头切到 j(不包含 j)slice[:] // 从头切到尾,等价于
nil 和空切片 有时,程序可能需要声明一个值为 nil 的切片(也称nil切片)。只要在声明时不做任何初始化,就会创建一个 nil 切片。 var num []int 在 Golang 中,nil 切片是很常见的创建切片的方法。nil 切片可以用于很多标准库和内置函数。在需要描述一个不存在的切片时,nil 切片会很好用。比如,函数要求返回一个切片但是发生异常的时候。下图描述了 nil 切片的状态: 空切片和 nil 切片稍有不同,下面的代码分别通过 make() 函数和字面量的方式创建空切片:
切片扩容 相对于数组而言,使用切片的一个好处是:可以按需增加切片的容量。 Golang 内置的 append() 函数会处理增加长度时的所有操作细节。要使用 append() 函数,需要一个被操作的切片和一个要追加的值,当 append() 函数返回时,会返回一个包含修改结果的新切片。 函数 append() 总是会增加新切片的长度,而容量有可能会改变,也可能不会改变,这取决于被操作的切片的可用容量。 num := []int{1, 2, 3, 4, 5}// 创建新的切片,其长度为 2 个元素
  • 共 1 页/4 条记录