Go语言:数组

简介: Go语言数组是切片学习的基础,这篇文章详细讲解数组的概念、声明、定义及使用。

简介

数组是具有固定长度且拥有0个或者多个相同数据类型元素的集合。在Go语言中,由于数组的长度固定,所以很少直接使用数组,而是经常使用切片(slice)。

数组就是把同一类东西放到一起,然后排上序号。因为数组通常包含多个元素,所以再给数组命名时,建议使用复数形式。


声明数组

Go 语言数组声明需要指定元素类型元素个数,语法格式如下:

vararr_name [SIZE] arr_type

image.gif

这是一维数组的定义方式。

下面就声明一个数组名为array,元素个数为10,数据类型为int型的数组。

vararray [10] int

image.gif


初始化数组

🎈第一种方式:

var list = [5] int{
    1,2,3,4,5,
}

image.gif

这里需要注意的是,数组的{}不在同一行的话,记得在最后一个元素后面加上一个逗号。

🎈第二种方式:

list := [5] int{1,2,3,4,5}

image.gif

其实就是省去var,用短定义的方式来初始化。


数组的长度必须是常量,这个值在程序编译时就可以确定。

如果一个数组中的元素类型是可以比较的,那么这个数组就是可以比较的,此时可以使用“==”运算符来比较两个数组。


数组索引与访问

数组的索引和C语言一样,都是从下标为0开始,而不是从1开始。

访问数组元素也只需要将该元素的位置或索引告诉Go语言即可。访问格式就是:数组名[索引值]


遍历数组

日常工作中,经常需要遍历数组中的所有元素,对每个元素执行相同的操作。

一般我们使用for range循环处理遍历数组的问题。

👇方式

    1. 首先定义一个数组
    2. 定义一个for循环,for循环这段代码可以让Go语言从数组中取出一个下标和对应的元素,并将其存储在变量a和b中(变量可自行定义)
    3. 打印变量a和b

    a代表元素所在数组的索引值,b代表元素本身。

    packagemainimport"fmt"funcmain() {
    varlist= [5]string{
    "矿泉水", "冰红茶", "绿茶", "可乐", "芬达",
        }
    fora, b :=rangelist {
    desc :=fmt.Sprintf("%d-%s", a, b)
    fmt.Println(desc)
        }
    }

    image.gif

    打印结果如下:

    0-矿泉水

    1-冰红茶

    2-绿茶

    3-可乐

    4-芬达

    目录
    相关文章
    |
    17天前
    |
    存储 监控 算法
    员工上网行为监控中的Go语言算法:布隆过滤器的应用
    在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
    61 8
    员工上网行为监控中的Go语言算法:布隆过滤器的应用
    |
    1月前
    |
    存储 Go 索引
    go语言中数组和切片
    go语言中数组和切片
    42 7
    |
    1月前
    |
    Go 开发工具
    百炼-千问模型通过openai接口构建assistant 等 go语言
    由于阿里百炼平台通义千问大模型没有完善的go语言兼容openapi示例,并且官方答复assistant是不兼容openapi sdk的。 实际使用中发现是能够支持的,所以自己写了一个demo test示例,给大家做一个参考。
    |
    1月前
    |
    程序员 Go
    go语言中结构体(Struct)
    go语言中结构体(Struct)
    105 71
    |
    1月前
    |
    存储 Go 索引
    go语言中的数组(Array)
    go语言中的数组(Array)
    109 67
    |
    1月前
    |
    Go 索引
    go语言for遍历数组或切片
    go语言for遍历数组或切片
    106 62
    |
    2天前
    |
    监控 安全 算法
    深度剖析核心科技:Go 语言赋能局域网管理监控软件进阶之旅
    在局域网管理监控中,跳表作为一种高效的数据结构,能显著提升流量索引和查询效率。基于Go语言的跳表实现,通过随机化索引层生成、插入和搜索功能,在高并发场景下展现卓越性能。跳表将查询时间复杂度优化至O(log n),助力实时监控异常流量,保障网络安全与稳定。示例代码展示了其在实际应用中的精妙之处。
    24 9
    |
    12天前
    |
    算法 安全 Go
    Go 语言中实现 RSA 加解密、签名验证算法
    随着互联网的发展,安全需求日益增长。非对称加密算法RSA成为密码学中的重要代表。本文介绍如何使用Go语言和[forgoer/openssl](https://github.com/forgoer/openssl)库简化RSA加解密操作,包括秘钥生成、加解密及签名验证。该库还支持AES、DES等常用算法,安装简便,代码示例清晰易懂。
    46 12
    |
    1月前
    |
    存储 Go
    go语言中映射
    go语言中映射
    42 11
    |
    1月前
    |
    Go
    go语言for遍历映射(map)
    go语言for遍历映射(map)
    40 12