热搜:前端 nest neovim nvim

Go系列——数组

lxf2023-05-21 02:02:10

数组

Go中的数组是同一种数据类型元素的集合。数组从声明的时候就确定了,在使用的时候可以修改数组成员,但是数组的大小不可改变。

// 定义一个数组
var a [5]string

这里表示定义一个长度为5的元素是string类型的数组

在Go中数组的长度定义后便不能再改变了,所以说长度不同的两个数组是不同的两个变量。

访问数组的元素

访问数组元素的方法一般是通过数组的下标,数组的下标是从0开始一直到len-1,如果访问到长度之外就会报错

var water [2]string
water = [2]string{"a","b"}
water[0] // "a"
water[len(water)-1] // "b"

初始化数组

在定义数组变量的时候进行初始化

var water = [2]int{1,2}

使用自适应长度进行初始化

var water = [...]string{"a","b","c"}

使用指定索引来进行初始化

var water = [...]int{1:1,5:3]

数组的遍历

var water = [...]string{"a","b","c"}

// for循环
for i := 0;i < len(water);i++ {
    fmt.Println(water[i])
}

// for range遍历
for index,value := range water {
    fmt.Println(index,value)
}

多维数组

二维数组

arr := [2][2]int{
    {1,1},
    {2,2}
}

fmt.Println(arr) //  [[1 1] [2 2] [3 3]]
fmt.Println(arr[0][0]) // 1

多维数组只有第一纬度也就是第一层可以使用...来让编译器推导出数组的长度

arr := [...][2]int{
    {1,1},
    {2,2},
}

二维数组的遍历

arr := [2][2]int{
    {1,1},
    {2,2}
}

for index1, value1 := range arr {  
    for index2, value2 := range value1 {  
        fmt.Println(index2, value2)  
    }  
    fmt.Println(index1, value1)  
}

小结

数组是同一种类型元素的集合,而且数组是值类型。赋值和传参会复制整个数组,改变副本的值,不会改变本身原来的值。

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!