【go】申明和初始化数组的方式有哪些?

一、概念

数组是一个长度固定的数据类型,用于存储一段具有相同的类型的元素的连续块。

常见数据类型有基本类型和复合类型:
基本类型: 整数,浮点,布尔,字符串
复合类型: array, slice , map, struct, pointer, function, channel . . .

申明和初始化 :
var name [size] type

var tmp[5] int

var name = [size] type {element1 ,element2 . . . }

var tmp = [5]int{1, 2, 3, 4, 5}

name := […] type {element1 ,element2 …}
这种方式只能写在函数内,作为局部变量使用,不能申明为全局变量

tmp := [...]string{"a", "b", "c"}

获取数组长度和容量:
长度 len(array/ map/ slice/ string …)
容量 cap()

tmp := [...]int{1, 5, 6: 7}
fmt.Println(len(tmp))
fmt.Println(cap(tmp))

获取和赋值:数组下标只能是数字, 获取 array[index] , 赋值 array[index] = value

二、实例

创建数组,申明包含4个元素的整型数组,通过下标赋值

一旦声明,数组里存储的数据类型和数组长度就都不能改变了。如果需要存储更多的元素, 就需要先创建一个更长的数组,再把原来数组里的值复制到新数组里。

var arr1 [4]int 
arr1[0] = 1
arr1[1]=2
arr1[2]=3
fmt.Println(arr1,len(arr1), cap(arr1))

输出: [1 2 3 0] 4 4

创建数组,申明长度4和类型int,并赋值全部元素

var arr2 =[4]int{1,2,3,4}
fmt.Println(arr2)

输出: [1 2 3 4]

创建数组,申明长度5和类型float32,并赋值部分元素

var arr3 = [5] float32{1.5,2,3.66}
fmt.Println(arr3)
  1. 输出: [1.5 2 3.66 0 0]

创建数组,申明长度5和类型int,并下标指定赋值

var arr4 = [5]int{1:10,4:40}
fmt.Println(arr4)

输出: [0 10 0 0 40]

创建数组,申明长度5和类型string,并下标指定赋值

var arr5 =  [5]string{4:"rose", 2:"ruby"}
fmt.Println(arr5 ,len(arr5), cap(arr5))

输出: [ ruby rose] 5 5

让 Go 自动计算声明数组的长度

此方式申明后,容量和长度是由初始化值的数量决定

var arr6= [...]int{1,4:2}
fmt.Println(arr6,len(arr6), cap(arr6))

输出: [1 0 0 0 2] 5 5

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值