go语言学习-数据结构
package main
import "fmt"
func main() {
// 切片的长度是不固定的,并且可以自动扩容
// var 切片名称 []切片类型 slice
var s1 []int
fmt.Println("最初的切片数据:", s1)
// 默认的两个属性,一个是切片的长度,表示这个切片中有多少个元素
// 容量:表示这个切片可以放入多少个元素
fmt.Println("切片的默认长度是:", len(s1))
fmt.Println("切片的默认容量是:", cap(s1))
s1 = append(s1, 7275, 85266) //append是将数据添加到对应的切片中
fmt.Println("长度是:", len(s1))
fmt.Println("容量是:", cap(s1))
fmt.Println("数据:", s1)
// 第二种声明方式,指定长度
s2 := make([]int, 5, 10) // 如果是string类型切片,默认的数据是什么呢?
fmt.Println("切片的默认长度是:", len(s2))
fmt.Println("切片的默认容量是:", cap(s2))
fmt.Println("最初的切片数据:", s2)
s2 = append(s2, 1, 2, 3, 4, 5, 6)
fmt.Println("最初的切片数据:", s2)
// 现在的切片的容量和长度是多少?
// 长度自动扩容为11,如果容量超出后,容量会自动变为:容量*2
fmt.Println("长度是:", len(s2))
fmt.Println("容量是:", cap(s2))
s2[0] = 88 //修改数据内容
fmt.Println("切片的数据:", s2)
for k, v := range s2 {
fmt.Printf("第%d个数据是: %d\n", k+1, v)
}
/*输出结果
最初的切片数据: []
切片的默认长度是: 0
切片的默认容量是: 0
长度是: 2
容量是: 2
数据: [7275 85266]
切片的默认长度是: 5
切片的默认容量是: 10
最初的切片数据: [0 0 0 0 0]
最初的切片数据: [0 0 0 0 0 1 2 3 4 5 6]
长度是: 11
容量是: 20
切片的数据: [88 0 0 0 0 1 2 3 4 5 6]
第1个数据是: 88
第2个数据是: 0
第3个数据是: 0
第4个数据是: 0
第5个数据是: 0
第6个数据是: 1
第7个数据是: 2
第8个数据是: 3
第9个数据是: 4
第10个数据是: 5
第11个数据是: 6
*/