• Go 数组相关操作


    一、内置函数

    • append :追加元素到slice里,返回修改后的slice
    • close :关闭channel
    • delete :从map中删除key对应的value
    • panic  : 用于异常处理,停止常规的goroutine
    • recover :用于异常处理,允许程序定义goroutine的panic动作
    • imag :返回复数(complex)的实部
    • real  : 返回复数(complex)的虚部
    • make :用来分配内存,主要分配引用类型,返回Type本身(只能应用于slice, map, channel)
    • new :分配内存,主要分配值类型,返回指向Type的指针,如int
    • cap  :容量,容积capacity
    • copy :复制slice,返回复制的数目
    • len :返回长度

    二、GO数组特性

      1. 数组:是同一种数据类型的固定长度的序列。
      2. 数组定义:var a [len]int,比如:var a [5]int,数组长度必须是常量,且是类型的组成部分。一旦定义,长度不能变。
      3. 长度是数组类型的一部分,因此,var a[5] int和var a[10]int是不同的类型。
      4. 数组可以通过下标进行访问,下标是从0开始,最后一个元素下标是:len-1
      for i := 0; i < len(a); i++ {
      }
      for index, v := range a {
      }
      5. 访问越界,如果下标在数组合法范围之外,则触发访问越界,会panic
      6. 数组是值类型,赋值和传参会复制整个数组,而不是指针。因此改变副本的值,不会改变本身的值。
      7.支持 "=="、"!=" 操作符,因为内存总是被初始化过的。
      8.指针数组 [n]*T,数组指针 *[n]T。

    三、定义数组与遍历

    package main
    
    import "fmt"
    
    func main() {
        //数组定义
        //第一种
        //var <数组名称> [<数组长度>]<数组元素>
        var arr [2]int
        arr[0] = 1
        arr[1] = 3
    
        // 第二种
        var a []int
        a = make([]int, 4)
        fmt.Println(a)
    
        //第三种
        var arrOne = [2]int{3, 4}
        arrOne1 := [2]int{5, 6}
        fmt.Println(arrOne)
        fmt.Println(arrOne1)
    
        //第四种不确定长度
        var arrFour = [...]int{23, 3, 4, 5, 6}
        fmt.Println(arrFour)
    
        arrFour1 := [...]int{2, 3, 4, 5}
        fmt.Println(arrFour1)
    
        //第五种 定义索引的数值
        var arrFiVe = [...]int{0:-1,3:6}
        fmt.Println(arrFiVe)
        var arrFiVe1 = [...]int{0:1,3:61}
        fmt.Println(arrFiVe1)
        
        // 数组遍历
        for i :=0 ;i<len(arrFiVe);i++{
            fmt.Println(arrFiVe[i])
        }
    
    
    }
  • 相关阅读:
    如何禁止用户直接对TextBox进行数据粘贴?(ASP.NET WEB开发)
    jquery过滤选择器前加空格与不加空格的区别(转)
    linux设置ip.dns.gateway
    Adobe Fireworks CS4 序列号(注册码)
    AS3清空数组的四种方法
    Flash中用AS3做的游戏,导出apk安装到手机上滤镜效果出不来为什么?
    用AS3清空容器下所有子显示对象
    对Linux进程的理解
    C++基础
    虚拟机三种网络模式(hostonly、Bridged、NAT)
  • 原文地址:https://www.cnblogs.com/zhaoyingjie/p/15849940.html
Copyright © 2020-2023  润新知