zoukankan      html  css  js  c++  java
  • 8.24Go之容器之多维数组

    8.24Go之容器之多维数组

    多维数组的一些特点

    • 数组属于值类型,多维数组的所有维度都会在创建时自动初始化零值

    • 多维数组尤其适合管理具有父子关系或者与坐标系相关联的数据。

    多维数组的声明语法:

    var 数组变量名 [元素数量][元素数量][元素数量]...[元素数量]Type

    声明二维数组

    直接声明二维整型数组:

    var arry [4][2]int

    使用数组字面量来声明并初始化一个二维整型数组:

    array = [4][2]int{{10, 11}, {20, 21}, {30, 31}, {40, 41}}

    声明并初始化指定的索引:

    array = [4][2]int{1: {20, 21}, 3: {40, 41}}

    声明并初始化指定元素:

    array = [4][2]int{1: {0: 20}, 3: {1: 41}}
    多维数组的内存模型

    代码示例:

    package main

    import "fmt"

    var array [4][3]int
    func main() {
    array = [4][3]int{{10, 11}, {20, 21}, {30, 31}, {40, 41}}
    fmt.Println(array)
    array = [4][3]int{1:{0, 21}, 3:{1:41}}
    fmt.Println(array)
    }

    访问多维数组的元素

    根据对应的索引一层一层的去访问:

    var arrays [2][2]int
    func main(){
    arrays[0][0] = 10
    arrays[0][1] = 20
    arrays[1][0] = 30
    arrays[1][1] = 40
    for i, j := range arrays {
    fmt.Printf("第%d位的值是%d ", i, j)
    }
    }

    数组之间的赋值需要类型一致--->数组长度、元素中数据的类型:

    package main

    import "fmt"

    func main() {
    var array [2][2]int
    var arrays [2][2]int
    arrays[0][0] = 10
    arrays[0][1] = 20
    arrays[1][0] = 30
    arrays[1][1] = 40
    array = arrays
    for i, j := range array {
    fmt.Printf("第%d位的值是%d ", i, j)
    }
    }

    因为数组是值类型,所以可以独立的复制某个维度:

    package main

    import "fmt"

    func main(){
       var array2 [2]int = arrays[0]
    var value int = arrays[0][1]
    for j, k := range array2 {
    fmt.Printf("第%d位的值是%d ", j, k)
    }
    fmt.Println(value)
    }

     

    It's a lonely road!!!
  • 相关阅读:
    基于jquery的提示框JavaScript 插件,类Bootstrap
    css重点知识和bug解决方法
    小白初识js
    动态的将数据生成“表格”(京东商品),并具备搜索筛选工能
    原装js轮播图,鼠标移入停止轮播,移出继续轮播
    用js写九九乘法表格,附带背景颜色
    用js写直角三角形,等腰三角形,菱形
    关于两数组,求出两数组中相同的的对象
    好的js书写习惯
    前端之道
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/15181779.html
Copyright © 2011-2022 走看看