day6 切片
parent
ae9db382cc
commit
0247d394ee
|
@ -0,0 +1,54 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// Slice(切片)代表变长的序列,序列中每个元素都有相同的类型。、
|
||||
// 一个slice类型一般写作[]T,其中T代表slice中元素的类型;
|
||||
// slice的语法和数组很像,只是没有固定长度而已。
|
||||
|
||||
// 数组和slice之间有着紧密的联系。
|
||||
// 一个slice是一个轻量级的数据结构,
|
||||
// 提供了访问数组子序列(或者全部)元素的功能,
|
||||
// 而且slice的底层确实引用一个数组对象。
|
||||
// 一个slice由三个部分构成:指针、长度和容量。
|
||||
// 指针指向第一个slice元素对应的底层数组元素的地址,
|
||||
// 要注意的是slice的第一个元素并不一定就是数组的第一个元素。
|
||||
// 长度对应slice中元素的数目;长度不能超过容量,
|
||||
// 容量一般是从slice的开始位置到底层数据的结尾位置。
|
||||
// 内置的len和cap函数分别返回slice的长度和容量。
|
||||
|
||||
// 多个slice之间可以共享底层的数据,并且引用的数组部分区间可能重叠。
|
||||
|
||||
// 切片可以对自己进行切片操作生成新的切片
|
||||
|
||||
func main() {
|
||||
month := [...]string{
|
||||
1: "January",
|
||||
2: "February",
|
||||
3: "March",
|
||||
4: "April",
|
||||
5: "May",
|
||||
6: "June",
|
||||
7: "July",
|
||||
8: "August",
|
||||
9: "September",
|
||||
10: "October",
|
||||
11: "November",
|
||||
12: "December",
|
||||
}
|
||||
summer := month[6:9]
|
||||
fmt.Println(summer)
|
||||
q2 := month[4:7]
|
||||
fmt.Println(q2)
|
||||
|
||||
// 可以用append向切片末尾添加一个元素 或者 另一个切片
|
||||
|
||||
var x []int
|
||||
x = append(x, 1, 2, 3)
|
||||
fmt.Println(x)
|
||||
x = append(x, x[1:]...) // 其中在append函数参数中的最后的“...”省略号表示接收变长的参数为slice
|
||||
fmt.Println(x)
|
||||
|
||||
}
|
Loading…
Reference in New Issue