zoukankan      html  css  js  c++  java
  • GO语言学习之数组

    数组的介绍

    数组是一个由“固定长度的", "特定类型元素"组成的序列,一个数组可以由一个或多个元素组成;因为数组的元素是固定的,所以在GO语言当中很少直接使用数组.

    简单的数组

    一、数组声明

    数组声明语法:

    var 数组变量名 [元素数量]Type
    • 数组变量名:数组声明及使用时的变量名
    • 元素数量:数组中元素的数量,可以提前定义,如果定义了就不能超出这个数量,也可以用[...]:表示数组的长度根据初始化的值自动计算
    • Type:可以是任意基本类型,比如int、string、也可以是数组本身,类型为数组本身时,可以实现多维数组.

    数组的每个元素都可以通过索引下标来访问,索引下标的范围是从0开始,内置函数len()可以返回数组元素中的个数

    ==========================代码================================
    func main() {
    var a [3]string = [3]string{"zhangsan","lisi","wangwu"} var b [3]int = [3]int{1,2,3} //求数组中最后一个元素是什么. fmt.Println(a[len(a)-1])
    //打印数组b fmt.Println(b)
    //遍历数组a,打印出下标和对应的元素的值 for i,v := range a { fmt.Println(i,v) }

    //遍历数组a,只打印出每个元素的值 for _,v := range a { fmt.Printf("%d ", v) } } =================================结果===================================== wangwu //a数组中最后一个元素的值 [1 2 3] //b数组 //打印数组a,下标和对应的元素的值值 0 zhangsan 1 lisi 2 string=wangwu ---------------------------------------- //只打印数组a元素的值 zhangsan lisi wangwu

    默认情况下,数组的每个元素都被初始化为元素类型对应的0值,对于int类型就是0,string类型就是空

    var q [3]int = [3]int{1, 2, 3}
    var r [3]int = [3]int{1, 2}
    fmt.Println(q)
    fmt.Println(r[2])
    
    
    结果:
    [1 2 3]
    0

    如果不想指定数组元素的数量,可以用[...]代替,表示数组的长度根据初始化值的个数来计算

    q := [...]int{1, 2,3,4,5}
    fmt.Printf("%T
    ", q)
    
    结果:
    [5]int  //有5个元素的int数组

    二、比较两个数组是否相等

    如果两个数组类型相同(包括数组的长度,数组中元素的类型)的情况下,我们可以直接通过运算符(==和!=)来判断两个数组是否相等

    只有当两个数组的所有元素都是相等的时候 数组才是相等的

    不能比较两个类型不同的数组,否则程序将无法完成编译

    a := [2]int{1, 2}
    b := [...]int{1, 2}
    c := [2]int{1, 3}
    fmt.Println(a == b, a == c, b == c) //结果: "true false false"
    d := [3]int{1, 2}
    fmt.Println(a == d) // 编译错误:无法比较 [2]int == [3]int

    三、遍历数组-->访问每一个数组元素

    var team [3]string
    team[0] = "zhangsan"
    team[1] = "lisi"
    team[2] = "wangwu"
    
    for k,v := range team {
        fmt.Println(k,v)
    }
    
    
    结果:
    0 zhangsan
    1 lisi
    2 wangwu
  • 相关阅读:
    Linux-Rsync文件同步
    Linux-PPTP服务器搭建
    Excle破解忘记保护密码的方法。
    Linux-多维度服务器调优
    postman测试钉钉审批接口
    linux 常用服务器部署
    DRF
    15.ES6模块
    14.class类
    13. async用法
  • 原文地址:https://www.cnblogs.com/chadiandianwenrou/p/13741340.html
Copyright © 2011-2022 走看看