数组,切片

数组介绍

数组可以存放多个同一类型数据,数组也是一种数据类型,在Go中,数组是值类型。
数组的定义
var 数组名 [数组大小]数组类型
var a [5]int
数组在内存布局
在这里插入图片描述

数组使用的注意事项和细节

1)数组是多个相同类型数据的组合,一个数组一旦声明/定义,其长度是固定的,不能动态变化
2)var arr []int 这时 arr就是一个slice切片
3)数组中的元素可以是任何数据类型,包括值类型和引用类型,但是不能混用
4)数组创建后,如果没有赋值,有默认值(零值)
数值类型数值:默认值为0
字符串数组:默认值为""
bool数组:默认值为false
5)使用数组的步骤:1.声明数组并开辟空间2.给数组各个元素赋值(默认零值)3.使用数组
6)数组的下标是从0开始的
7)数组下标必须是指定范围内使用,否则报panic:数组越界
8)Go的数组属值类型,在默认情况下是值传递,因此会进行值拷贝。数组间不会相互影响
9)如想在其它函数中,去修改原来的数组,可以使用引用传递(指针方式)
10)长度是数组类型的一部分,在传递函数参数时,需要考虑数组的长度。

切片的基本介绍

1)切片的英文是slice
2)切片是一个数组的引用,由此切片是引用类型,在进行传递时,遵守引用传递机制。
3)切片的使用和数组类似,遍历切片,访问切片的元素和求切片长度len()都一样
4)切片的长度是可以变化的,因此切片是一个可以动态变化数组
5)切片定义的基本语法:
var 切片名 []类型
var a []int

切片的内存图
在这里插入图片描述

切片的创建方式

1.定义一个切片,然后让切片去引用一个已经创建好的数组。
var arr [5]int = […]int {1,2,3,4,5}
var slice = arr[1:3]
2.通过make来创建切片
var 切片名 []type =make([]type,len,[cap])
type:就是数据类型,len:大小,cap:指定切片容量,可选,如果你分配了cap,则要求cap>=len
3.定义一个切片,直接就指定具体数组,使用原理类似make的方式
var strSlice []string = []string{“tom”,“jack”,“mary”}

方式1和方式2的区别
方式1是直接引用数组,这个数组是事先存在的,程序员是可见的。
方式2是通过make来创建切片,make也会创建一个数组,是由切片在底层进行维护,程序员是看不见的。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值