声明数组语法 var a = [10]int{} 长度[]+类型+{} 等于 一个数组的声明 ,如果数组里面的值没有 10 个的话 少的位置 int类型用0填充
string类型用空白填充
如
package main
import ("fmt")
func main() {
a := [9]int{1,2,3,4,5,6}
b := [9]string{"1","2","3","4","5","6"}
fmt.Println(a) //[1 2 3 4 5 6 0 0 0]
fmt.Println(b) //[1 2 3 4 5 6 ]
}
每个数组的大小都是固定的。而切片则为数组元素提供动态大小的、灵活的视角。在实践中,切片比数组更常用。
语法: a := [9]int{1,2,3,4,5,6}
var b []int = a[0:5] //必须是var 声明 切片通过两个下标来界定,即一个上界和一个下界,二者以冒号分隔:a[low : high]
package main
import ("fmt")
func main() {
a := [9]int{1,2,3,4,5,6,7,8,9}
var b []int = a[0:5]
fmt.Println(b)
}
切片并不存储任何数据,它只是描述了底层数组中的一段。
更改切片的元素会修改其底层数组中对应的元素。
如
package main
import ("fmt")
func main() {
a := [9]int{1,2,3,4,5,6,7,8,9}
var b []int = a[1:5]
b[0]=66
fmt.Println(b) //[66 3 4 5]
fmt.Println(a) //[1 66 3 4 5 6 7 8 9]
}
切片后的数组下标重新定义了一下 所以上述的 b[0]的值的位置其实是a[1]的值的位置
进行切片时,你可以利用它的默认行为来忽略上下界
切片下界的默认值为 0,上界则是该切片的长度。
var a [10]int
a[0:10]
a[:10]
a[0:]
a[:]
都是一样的
网友评论