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])
    }


}

 

posted on 2022-01-27 15:07  星河赵  阅读(548)  评论(0编辑  收藏  举报

导航