zoukankan      html  css  js  c++  java
  • Go数组

    数组

    1. 概念

      存储一组相同数据类型的数据的数据结构。

      数组一旦定义后,长度不可改变。

    2. 语法

      var 数组名 [长度]数据类型
      
      var a1 [5]int = [5]int{1,2,3}
      或 var a1 = [5]int{1,2,3}
      
      var a2 [5]int
      a2[0]=1
      
      var a3 [5]int = [5]int{1:3,4:8}//在指定位置赋值
      var a4 = [...]int{1,2,3}//使用类型推断,自动推测数组长度
      
    3. 长度与容量

      1. go语言的内置函数
      2. 长度 len() 不是数组独有的,array/map/slice/string都可以使用
      3. 容量 cap()
    4. 内存分析

      1. 在内存开辟连续内存空间,数组的地址就是数组首个元素的地址

      2. 获取数组的内存地址

        var a6 [5]int
        fmt.Printf("%p",&a6)
        
      3. 创建过程

        1. 首先根据变量的类型和数组长度,开辟相应的内存空间,并且内存空间初始化为相应类型的零值
        2. 数组变量指向内存空间首个元素的地址
    5. 数组的遍历

      var a3 = [5]int{1,2}
      for i,v := range {
      	
      }
      
    6. 数组类型

      [size]type

    7. 值传递

      1. 理解为存储的数值本身
      2. 将数据复制一份,赋值给变量,修改变量值不影响原来的数据
      3. 数组也是值传递
      4. int,float,bool,string,array
    8. 引用传递

      1. 理解为存储的数据内存地址
      2. 将内存地址赋值一份,赋值给其他变量
      3. slice,map是引用传递
    9. 值类型可以用==比较

      数组作为值类型,使用==比较时,只要对应下标位上的值相等,数组就相等

    10. 数组的排序

    11. 二维数组

      var a1 = [3][4]int{{},{},{}}
      a1 = [3][4]int{{1,2,3},{4,5,6},{7,8,9}}
      3个一维数组
      每个一维数组长度位4
      
      一层数组中存放了二层数组的地址,如a1[0]存放了a[0][0]的地址
      
      len(a1) 是二维数组中一维数组的个数,也就是一维数组中存储数值的个数
      
      var tva = [2][2]int{[2]int{}, [2]int{}}
      
      //遍历二维数组
      for _,arr1 := range tva{
          for _,arr2 := range arr1 {
              fmt.Println(arr2)
          }
      }
      

  • 相关阅读:
    485通讯和电力线载波通讯[收集转载]
    鹿城通综合业务系统常见问题
    485总表专题
    试试Live Writer的代码插件
    WPF路径动画——XAML篇
    无功电量的抄收
    一个JQuery操作Table的好方法
    季节计算脚本
    【学艺不精系列】关于Json.NET的反序列化
    NT6.x以上系统,多版本SQL Server局域网配置
  • 原文地址:https://www.cnblogs.com/henryno12/p/12377620.html
Copyright © 2011-2022 走看看