05-golang数组

golang数组

数组是golang中的一种数据结构。它是一种元素个数固定(长度固定),元素数据类型相同的集合。长度固定则意味着数组是无法扩容的,因为这个原因,所以在我们开发过程中,很少会去使用数组。但是我们仍然要去学习它,因为go中有多种其他数据类型底层结构用到了数组。学习了数组,对于我们日后去深入go底层有很大的帮助。

1、数组声明

var 数组变量名 [数组长度]数据类型

var s [5]string  // 声明一个长度为5,数据类型为string的数组s
var m [10]int  //声明一个长度为10,数据类型为int的数组m

2、数组初始化

指定数组长度,不指定数组初始化列表,由编译器根据数据类型设置默认值

var s [3]string    // ["" "" ""]
var m [3]int       //[0 0 0]
var n [3]float     //[0 0 0]
var f [3]false     //[false false false]

指定数组长度,并指定数组初始化列表

var m = [3]int{1, 2, 3}    // [1 2 3]

不指定数组长度,指定数组初始化列表,数组长度由编译器根据初始化列表长度推导

var m = [...]int{1, 2, 3, 4}    // 数组长度为4

根据指定索引值来初始化数组

func main() {
    a := [...]int{1: 1, 3: 5}
    fmt.Println(a)                  // [0 1 0 5]
    fmt.Printf("type of a:%T\n", a) //type of a:[4]int
}

3、数组遍历

数组遍历有两种方法,一种是索引遍历,一种是for range遍历

func main() {
    arr := [5]int{1, 2, 3, 4, 5}
    // 索引遍历
    for i := 0; i < len(arr); i++ {
        fmt.Println(arr[i])
    }
    // for range遍历
    for index, value := range arr{
        // index表示下标
        fmt.Println(index, ":", value)
    }
}

4、数组是值类型

go语言中数组是值类型,在赋值或者传参的时候会复制整个数组,因此改变副本的值,不会改变自身的值。

func modifyArray(arr [3]int)  {
    arr[2] = 10
}

func main() {
    arr := [3]int{1, 2, 3}
    modifyArray(arr)
    fmt.Println(arr[2]) // 打印结果:3,说明数组是值类型。函数中改变的是副本的值,而不是本身的值。
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值