首先从定义中来区别
数组的概念就唠叨了 ,格式如下var balance [10] float32
第一个var是赋值符号 balance为数组名称 【10】为数组下表 float32 数组类型为浮点型 以上是数组的基本概念 重点在下面:
var balance = []float32{1000.0, 2.0, 3.4, 7.0, 50.0},【】中不填写数字的形式,go语言中会根据元素的个数来设置数组的大小。或许会认为是动态数组 但是它不是 因为它的数量只是后面的元素来设定,但不是动态的 有什么区别 往下看:
切片的定义:代号(slice)
go数组长度不可改变 上面没有数组下表的格式 是根据元素决定数组的大小 是设置 不是改变。而切片不同,与数组相比切片的长度是不固定的,可以追加元素,在追加是可能切片的容量增大,意思也就是说它的大小可以改变
简单的说,就是切片的数量大小可以改变 ,数组不可以
切片的格式定义:
var slice1 []type = make([]type, len)
虽然都没有定义数组下表的数值,但是这个数值是可以增加的 因为可以增加数组成员。
上面的格式含义 分词介绍: var 赋值代号 sclice切片定义这个变量可以自己设定, type是指切片的类型 =号左边和右边都是切片的定义格式 只不过是两种形式 还有一种简写就是 slice :=make([]type,len) len是数组的长度也就是初始长度, 这种定义方式是一种简写 就像变量的简写: x :=某值 切片还可以截取和增加 因为这篇文章主要是区别数组和切片的概念 避免混淆
有疑问加站长微信联系(非本文作者)