文章目录
一、数组Array——复合类型
1、介绍
数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整型、字符串、或者自定义类型。数组元素可以通过索引(位置)来读取(或者修改),索引从0开始,第一个元素索引为0,第二个索引为1,以此类推。数组的下标取值范围从0开始,到长度减1,数组大小一旦定义后,就不能改变。
2、数组的语法
声明和初始化数组
需要指名数组的大小和存储的数据类型
初始化数组中{
}的元素个数不能大于[]中的个数
如果忽略[]中的数字不设置数组的大小,Go语言会根据元素的个数来设置数组的大小
未赋值时整型默认为0
var variable_name [size] variable_type
例子:
var balance [10] int32
var balance1 = [10] int32{
1,2,3,4,5,6,7,8,9,10}
其他创建方式
var a[4] int32 同 var a =[4] int
var a=[4] int {
1,2,3,4}
var a=[5]int{
1:1,2:2}//指定位置赋值,其余位置为0,[0 1 2 0 0]
d :=[...]int{
1,2,3} //根据元素的个数,设置数组的大小
c :=[5] int {
1:2}//指定位置赋值,其余为0
例子:
package main
import "fmt"
func main() {
var balance1 = [10] int32{
1,2,3,4,5,6,7,8,9,10}
balance1[1]=11
var a=[5]int{
1:1,2:2}
fmt.Println(balance1[1])
fmt.Println(len(balance1))//容器中实际存储的数据量
fmt.Println(cap(balance1))//容器中能够存储的最大数量
fmt.Println(a)
//打印数组地址
fmt.Printf("%p\n",&a[1])//打印某个元素地址
fmt.Printf("%p",&a)//打印数组的初始地址
}
3、数组遍历for_range
//使用for循环遍历数组
var balance1 = [10] int32{
1,2,3,4,5,6,7,8,9,10}
for i:=0;i<len(balance1);i++{
fmt.Printf("%d ",balance1[i])
}
//使用range遍历数组,同时适用于map slice array string,需要接收两个数值,下标和对应下标上的数值
//1、下标和数值同时需要获取
var balance1 = [10] int32{
1,2,3,4,5,6,7,8,9,10}
for index,value:= range balance1{
fmt