go 语言 数组声明与切片

2018-09-26  本文已影响0人  杀杀神者

声明数组语法  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[:]

都是一样的

上一篇 下一篇

猜你喜欢

热点阅读