文章目录
(一)切片 (Slices)
一个数组有足够的适合的长度,但是切片是从另一个方面来定义,是一个动态的尺寸,相当于一个灵活可扩展的数组;在实际操作练习中,切片比数组更常用
(1) 切片的类型表示用 [ ]T ,比如
[ ] int
, 则切片的类型为int型;
(2) 一个切片由指定的两个索引组成,一个低边界的索引和一个高边界的索引,使用分号分割开,写法如:a[low:high]
;
(3) 切片索引选择的范围是半开型区间,包含索引的第一个元素,但是不包含第最后一个元素,比如,选择4个元素a[1:5]
(4) 切片的索引是从0开始数数的
package main
import "fmt"
func main(){
v := [5]int{
1,3,5,7,9}
fmt.Println("切片的值为:",v)
var s[]int = v[1:3]
fmt.Println("切片1到3的范围内的值为:",s)
}
(二)切片就像对数组的引用
一个切片并不会存储任何值,它仅仅是描述了一个底层的数组;改变切片的元素会相应地改变底层数组的元素,其他共享同样的底层数组的切片也会知道这些改变
package main
import "fmt"
func main() {
s := [4]string{
"kok",
"galarxy",
"steven",
"bot",
}
fmt.Println("打印的切片全部值为:", s)
r1 := s[0:1]
r2 := s[2:4]
fmt.Println("切片[0:1]和[2:4]的值分别为:", r1, r2)
r1[0] = "1024"
fmt.Println("数组r1的值为", r1)
fmt.Println("在各种改变了底层数组的值后,切片的值为:", s)
}
(三)切片的文法
一个切片的文法更像是一个没有长度的数组
数组的文法
[3]bool{
true,true,