go截取数组_Go语言数组和切片

此处数组只讲Go语言中和C语言不一样的地方

格式不同:

Go语言定义数组的格式:var ages [3]int

定义的同时初始化

格式 var 数组名称 数组类型 = 数组类型{值}

var ages [3]int = [3]int{1,3,5}

注意点:

1.在定义的同时初始化必须在大括号前写上数据类型,并且数据类型必须相同(数组长度和数据类型)

2.可以和C语言一样部分初始化,但是C语言部分初始化没有被赋值的地方保存了垃圾数据,Go语言中没有被赋值的地方默认为0\

3.数组中数组的名称不能代表数组的地址

第二种方式(省略数组长度)

ages := [...]int{1,3,5}

在这里用...表示数组长度,编译器根据赋值的元素个数自动计算数组的元素个数

先定义后初始化

var ages [3]int

ages = [3]int{1,3,5}

在这里,Go语言可以一次性给数组赋值,当然也可以逐个赋值

数组注意点

Go语言中数组是值类型,数组之间的赋值是值拷贝,而不是地址的拷贝

ages := [3]int{1,3,5}

change(ages)

fmt.println(ages)//1,3,5

func change(num [3]int) {

num[1] = 666

}

2.由于数组是值类型,所以两个数组间可以用" == " " != "进行比较,但是进行值比较的数组必须类型长度完全相同,完全相同!!!

数组的遍历

方法一: 传统的for循环

方法二: for index,value := range ages{

fmt.println(index,value)

}

二维数组

定义二维数组的格式

var 数组名称 [行数][列数]数据类型

var 数组名称 [一维数组的个数][每个一维数组的元素个数]数据类型

注意点:

二维数组也可以省略元素个数, 但是只能省略行数, 不能省略列数

切片(重点)

数组的长度一旦固定,就不能改变,Go语言为了解决这一问题,产生了切片,切片就是可变的数组

切片的底层是结构体

Go语言源码中如此展示

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值