切片的更多操作方法
来源:互联网 发布:海尔电视软件下载 编辑:程序博客网 时间:2024/05/27 06:50
在进行“切片”操作的时候需要指定元素下界索引和元素上界索引,就像这样:
numbers3[1:4]
在有些时候,还可以在方括号中放入第三个正整数,如下所示:
var numbers3 = [5]int{1, 2, 3, 4, 5}
var slice1 = numbers3[1:4]
这时,变量slice1的值是[]int{2, 3, 4}。但是可以通过如下操作将其长度延展得与其容量相同:
如果在切片表达式中加入了第三个索引(即容量上界索引),如:
var slice1 = numbers3[1:4:4]
那么在这之后,无论怎样做都无法通过slice1访问到numbers3的值中的第五个元素。因为这超出了刚刚设定的slice1的容量。如果指定的元素上界索引或容量上界索引超出了被操作对象的容量,那么就会引发一个运行时恐慌(程序异常的一种),而不会有求值结果返回。因此,这是一个有力的访问控制手段。
虽然切片值在上述方面受到了其容量的限制,但是却可以通过另外一种手段对其进行不受任何限制地扩展。这需要使用到内建函数append。append会对切片值进行扩展并返回一个新的切片值。使用方法如下:
slice1 = append(slice1, 6, 7)
通过上述操作,slice1的值变为了[]int{2, 3, 4, 6, 7}。注意,一旦扩展操作超出了被操作的切片值的容量,那么该切片的底层数组就会被自动更换。这也使得通过设定容量上界索引来对其底层数组进行访问控制的方法更加严谨了。
要介绍的最后一种操作切片值的方法是“复制”。该操作的实施方法是调用copy函数。该函数接受两个类型相同的切片值作为参数,并会把第二个参数值中的元素复制到第一个参数值中的相应位置(索引值相同)上。这里有两点需要注意:
1. 这种复制遵循最小复制原则,即:被复制的元素的个数总是等于长度较短的那个参数值的长度。
2. 与append函数不同,copy函数会直接对其第一个参数值进行修改。
举例如下:
var slice4 = []int{0, 0, 0, 0, 0, 0, 0}
copy(slice4, slice1)
numbers3[1:4]
在有些时候,还可以在方括号中放入第三个正整数,如下所示:
numbers3[1:4:4]
var numbers3 = [5]int{1, 2, 3, 4, 5}
var slice1 = numbers3[1:4]
这时,变量slice1的值是[]int{2, 3, 4}。但是可以通过如下操作将其长度延展得与其容量相同:
slice1 = slice1[:cap(slice1)]
如果在切片表达式中加入了第三个索引(即容量上界索引),如:
var slice1 = numbers3[1:4:4]
那么在这之后,无论怎样做都无法通过slice1访问到numbers3的值中的第五个元素。因为这超出了刚刚设定的slice1的容量。如果指定的元素上界索引或容量上界索引超出了被操作对象的容量,那么就会引发一个运行时恐慌(程序异常的一种),而不会有求值结果返回。因此,这是一个有力的访问控制手段。
虽然切片值在上述方面受到了其容量的限制,但是却可以通过另外一种手段对其进行不受任何限制地扩展。这需要使用到内建函数append。append会对切片值进行扩展并返回一个新的切片值。使用方法如下:
slice1 = append(slice1, 6, 7)
通过上述操作,slice1的值变为了[]int{2, 3, 4, 6, 7}。注意,一旦扩展操作超出了被操作的切片值的容量,那么该切片的底层数组就会被自动更换。这也使得通过设定容量上界索引来对其底层数组进行访问控制的方法更加严谨了。
要介绍的最后一种操作切片值的方法是“复制”。该操作的实施方法是调用copy函数。该函数接受两个类型相同的切片值作为参数,并会把第二个参数值中的元素复制到第一个参数值中的相应位置(索引值相同)上。这里有两点需要注意:
1. 这种复制遵循最小复制原则,即:被复制的元素的个数总是等于长度较短的那个参数值的长度。
2. 与append函数不同,copy函数会直接对其第一个参数值进行修改。
举例如下:
var slice4 = []int{0, 0, 0, 0, 0, 0, 0}
copy(slice4, slice1)
通过上述复制操作,slice4会变为[]int{2, 3, 4, 6, 7, 0, 0}。
0 0
- 切片的更多操作方法
- python切片知识操作方法解析
- jedis 切片(分布式) 非切片的实例
- python强大的切片
- ps切片的使用
- python的切片[]
- ps的切片
- python切片的问题
- python切片的使用
- pyhton的切片操作
- Python的序列切片
- Python的切片操作
- Python的切片原理
- Python3的切片
- python3 矩阵的切片
- pytorch的切片
- Python的“切片”:什么是切片?切片有什么作用?哪些地方会用到切片?
- 常用的文件操作方法
- H - Bulbs
- C语言断言的应用
- PAT-B 1017. A除以B
- Spongebob and Joke
- Fedora 24 相关配置
- 切片的更多操作方法
- centos7 ip forwarding 的坑
- I - Restaurant
- Java学习-值传递
- linux 硬链接 符号链接
- 文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列哪个命令是对的?
- NKOI 3726 史上最大值
- J - HDD is Outdated Technology
- 学习笔记(一)C#基础和泛型List和DataTable和HashTable和Dictionary的简单用法--存值 取值