Go语言数组的内部实现和基础功能--多维数组

发布时间:2020-06-19编辑:lianpenglin阅读(1837)

    多维数组

    数组本身只有一个维度,不过可以组合多个数组创建多维数组。多维数组很容易管理具有父子关系的数据或者与坐标系相关联的数据。声明二维数组的示例如下所示:

    //声明一个二维整型数组,两个维度分别存储4个元素和2个元素
        var array [4][2]int
        //使用数字面量来声明并初始化一个二维整型数组
        array := [4][2]int{{10,11},{20,21},{30,31},{40,41}}
        //声明并初始化外层数组中索引为1个和3的元素
        array := [4][2]int{1:{20,21},3:{30,31}}
        //声明并初始化外层数组和内层数组中的单个元素
        array := [4][2]int{1:{0:20},3:{1:41}}

    为了访问单个元素,需要反复组合使用[]运算符,如下代码所示:

    //声明一个2x2的二维整型数组
        var array [2][2]int
        
        //设置每个元素的整型值
        array[0][0] = 10
        array[0][1] = 20
        array[1][0] = 30
        array[1][1] = 40

    只要类型一致,就可以将多维数组互相赋值,如下代码所示。多维数组的类型包括每一维度的长度以及最终存储在元素中的数据的类型

    //声明两个不同的二维整型数组
        var array1 [2][2]int
        var array2 [2][2]int
        //为每个元素赋值
        array2[0][0] = 10
        array2[0][1] = 20
        array2[1][0] = 30
        array2[1][1] = 40
        //将array2的值赋值给array1
        array1 = array2
        
        //因为每个素组都是一个值,所以可以独立复制某个纬度,
        //将array1的索引为1的纬度复制到一个同类型的新素组里
        var array3 [2]int = array1[1]
        //将外城素组的索引为1、内层数组的索引为0的整型值复制到新的整型变量里
        var value int = array1[1][0]


标签golang

如果对你有用打赏一下吧!