go 语言 数组声明与切片

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

都是一样的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组 和C语言一样,Go语言中也有数组的概念, Go语言中的数组也是用于保存一组相同类型的数据 和C语言一样,Go...
    极客江南阅读 1,217评论 0 2
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,857评论 0 6
  • Golang是我最喜欢的一门语言,它简洁、高效、易学习、开发效率高、还可以编译成机器码… 虽然它一出世,就饱受关注...
    盘木阅读 3,574评论 0 7
  • (一) 我已经这副打扮在好莱坞的街头每天路过十次以上近三个月了,仍然没有星探发现我,却被那群该死的男人骗了几次。今...
    园区绿化带阅读 467评论 1 5
  • 这一天,停下了脚步,坐在十字路口, 吹着北京常有的风,看人来人往,车来车往 一群遛狗的人,对狗的爱胜于对人,...
    张小米_阅读 218评论 0 0