当前位置: 首页 > article >正文

1.4 Go 数组

一、数组

1、简介

数组是切片的基础

数组是一个固定长度、由相同类型元素组成的集合。在 Go 语言中,数组的长度是类型的一部分,因此 [5]int 和 [10]int 是两种不同的类型。数组的大小在声明时确定,且不可更改。

简单来说,数组就像是一个有序的容器,用来存放同一类型的多个元素。就像你在一个盒子里按顺序排列多个相同的物品,每个物品都有一个序号可以标识。因为数组通常包含多个元素,所以命名时可以使用复数形式,比如 books 、dogs、foods等。

在现实生活中,数组无处不在。例如,在书架上,按顺序排列的书籍就像一个数组,每本书都有一个位置编号。你可以通过编号来找到某一本书,类似地,通过数组的索引来访问其中的元素。

2、数组定义

2.1、定义数组,然后进行赋值操作

package mainimport "fmt"var tp1 [5]string
// tp1 = [5]string{"北京", "上海", "深圳", "广州", "杭州"}  //错误赋值。func main() {tp1 = [5]string{"北京", "上海", "深圳", "广州", "杭州"}  //Go 不允许在函数体外部直接对变量进行赋值。你在全局范围内声明了数组 tp1,然后尝试在全局范围内对其进行赋值,但 Go 语言要求对变量的赋值只能在函数体内进行。fmt.Println(tp1)
}

2.2、定义变量时进行赋值

package mainimport "fmt"// var tp1 [5]string
var tp2 = [5]int{1, 2, 3, 4, 5} //定义并进行赋值
func main() {// tp1 = [5]string{"北京", "上海", "深圳", "广州", "杭州"}// fmt.Println(tp1)fmt.Println(tp2)}​

2.3、短变量方式赋值

package mainimport "fmt"
func main() {tp3 := [5]int{1, 2, 3, 4, 15}fmt.Println(tp3)}

2.4、一维数组案例

存储多个相同类型的元素,可以通过一个索引来访问。

package mainimport "fmt"var deploy = [5]string{"deploy", "update", "remove", "back", "exit"}func main() {fmt.Println("请输入选项进行操作:")for i, v := range deploy {fmt.Println(i+1, v)}}

2.5、二维数组

包含多个一维数组的数组,通常被用来表示矩阵或表格数据。可以通过两个索引来访问元素,第一个索引表示行,第二个索引表示列。

package mainimport "fmt"func main() {// 定义并初始化一个 2x3 的二维数组var matrix = [2][3]int{{1, 2, 3},  // 第一行{4, 5, 6},  // 第二行}// 访问并打印二维数组的每个元素for i := 0; i < len(matrix); i++ {for j := 0; j < len(matrix[i]); j++ {fmt.Printf("matrix[%d][%d] = %d\n", i, j, matrix[i][j])}}
}

二、访问数组方法

在Go语言中,数组中的第一个元素的索引是0,第二个索引是1。第三个索引是2以此类推

1、获取数组中第二个元素 上海

package mainimport "fmt"
func main() {tp4 := [3]string{"北京", "上海", "深圳"}message := "选择的城市是:" + tp4[1]fmt.Println(message)}

2、遍历数组

在日常生活中经常需要遍历数组来做相同的操作,例如旅游选择的城市。

Go语言中使用自带的for range 来循环遍历数组中的内容

  • 第一个变量i 是元素所在数组中的索引位置
  • 第二个变量v是元素本身
	tp5 := [5]string{"北京", "上海", "深圳", "杭州", "深圳"}for i, v := range tp5 {fmt.Println(i, v)}}

3、修改数组中的元素

修改数组中的元素,需要现制定属主名和要修改的元素索引,在指定元素的新值

package main
import "fmt"
var tp7 = [3]int{100, 200, 300}
func main() {tp6 := [2]int{1, 2}tp6[0] = 100fmt.Println(tp6[0])tp7[0] = 1024fmt.Println(tp7)}

三、数组使用注意事项

使用列表时避免索引错误

数组中有两个元素访问的索引是2,超出了数组的范围

	tp8 := [2]int{1, 2}fmt.Println(tp8[2])

# command-line-arguments

./main.go:29:18: invalid argument: index 2 out of bounds [0:2]

相关文章:

1.4 Go 数组

一、数组 1、简介 数组是切片的基础 数组是一个固定长度、由相同类型元素组成的集合。在 Go 语言中&#xff0c;数组的长度是类型的一部分&#xff0c;因此 [5]int 和 [10]int 是两种不同的类型。数组的大小在声明时确定&#xff0c;且不可更改。 简单来说&#xff0c;数组…...

攻防世界_simple_php

同类型题&#xff08;更难版->&#xff09;攻防世界_Web(easyphp)&#xff08;php代码审计/json格式/php弱类型匹配&#xff09; php代码审计 show_source(__FILE__)&#xff1a;show_source() 函数用于显示指定文件的源代码&#xff0c;并进行语法高亮显示。__FILE__ 是魔…...

如何使用C#的using语句释放资源?什么是IDisposable接口?与垃圾回收有什么关系?

在 C# 中,using语句用于自动释放实现了IDisposable接口的对象所占用的非托管资源,如文件句柄、数据库连接、图形句柄等。其使用方式如下: 基础用法 声明并初始化资源对象:在using关键字后的括号内声明并初始化一个实现了IDisposable接口的对象。使用资源:在using语句块内…...

C++哈希(链地址法)(二)详解

文章目录 1.开放地址法1.1key不能取模的问题1.1.1将字符串转为整型1.1.2将日期类转为整型 2.哈希函数2.1乘法散列法&#xff08;了解&#xff09;2.2全域散列法&#xff08;了解&#xff09; 3.处理哈希冲突3.1线性探测&#xff08;挨着找&#xff09;3.2二次探测&#xff08;跳…...

Solon Cloud Gateway 开发:导引

Solon Cloud Gateway 是 Solon Cloud 体系提供的分布式网关实现&#xff08;轻量级实现&#xff09;。 分布式网关的特点&#xff08;相对于本地网关&#xff09;&#xff1a; 提供服务路由能力提供各种拦截支持 1、分布式网关推荐 建议使用专业的分布式网关产品&#xff0…...

科技快讯 | OpenAI首次向免费用户开放推理模型;特朗普与黄仁勋会面;雷军回应“10后小学生深情表白小米SU7”

不用开口&#xff1a;谷歌 AI 帮你致电商家&#xff0c;价格、预约一键搞定 谷歌在1月30日推出Search Labs中的“Ask for Me”实验性功能&#xff0c;用户可利用AI代替自己致电商家咨询价格和服务。该功能已与美汽车修理厂和美甲沙龙店合作&#xff0c;用户需加入Search Labs并…...

dmfldr实战

dmfldr实战 本文使用达梦的快速装载工具&#xff0c;对测试表进行数据导入导出。 新建测试表 create table “BENCHMARK”.“TEST_FLDR” ( “uid” INTEGER identity(1, 1) not null , “name” VARCHAR(24), “begin_date” TIMESTAMP(0), “amount” DECIMAL(6, 2), prim…...

谷歌收购HTC Vive部分软件团队:为VR/AR生态注入新活力

虚拟现实(VR)和增强现实(AR)技术的快速发展,正在重新定义我们与数字世界互动的方式。然而,尽管这些技术具有巨大的潜力,初创公司进入平台层面的竞争却异常艰难。Meta凭借其既有实力和先发优势占据了市场的主导地位,而苹果则似乎更倾向于专注于AR领域的发展。在这种背景…...

Spring AOP 入门教程:基础概念与实现

目录 第一章&#xff1a;AOP概念的引入 第二章&#xff1a;AOP相关的概念 1. AOP概述 2. AOP的优势 3. AOP的底层原理 第三章&#xff1a;Spring的AOP技术 - 配置文件方式 1. AOP相关的术语 2. AOP配置文件方式入门 3. 切入点的表达式 4. AOP的通知类型 第四章&#x…...

ElasticSearch view

基础知识类 elasticsearch和数据库之间区别&#xff1f; elasticsearch&#xff1a;面向文档&#xff0c;数据以文档的形式存储&#xff0c;即JSON格式的对象。更强调数据的搜索、索引和分析。 数据库&#xff1a;更侧重于事务处理、数据的严格结构化和完整性&#xff0c;适用于…...

一文读懂Python之random模块(31)

random模块是Python的内置标准库&#xff0c;用于生成各类随机数&#xff0c;可以用作生成网站初始登录密码和随机验证码。 一、random模块简介 random模块可以生成随机数&#xff0c;包括随机整数、浮点数、随机元素等。 二、random模块相关概念 随机数&#xff1a; 是指在…...

12.udp

12.udp **1. UDP特性****2. UDP编程框架&#xff08;C/S模式&#xff09;****3. UDP发送接收函数****4. UDP编程练习** 1. UDP特性 连接特性&#xff1a;无链接&#xff0c;通信前无需像TCP那样建立连接。可靠性&#xff1a;不可靠&#xff0c;不保证数据按序到达、不保证数据…...

Upscayl-官方开源免费图像AI增强软件

upscayl 链接&#xff1a;https://pan.xunlei.com/s/VOI0Szqe0fCwSSUSS8zRqKf7A1?pwdhefi#...

【Super Tilemap Editor使用详解】(十七):常见问题解答(FAQ)

1.问题:我更新了 Unity 版本后,资源无法正常工作或代码出现错误。 解答:当你使用不同版本的 Unity 打开项目时,应该删除项目根目录下的 Library 文件夹。此外,如果遇到窗口问题,可以将窗口布局重置为默认布局。 2.问题:我在 SceneView 中看不到工具栏,也无法在图块地图…...

SpringBoot Web开发(SpringMVC)

SpringBoot Web开发&#xff08;SpringMVC) MVC 核心组件和调用流程 Spring MVC与许多其他Web框架一样&#xff0c;是围绕前端控制器模式设计的&#xff0c;其中中央 Servlet DispatcherServlet 做整体请求处理调度&#xff01; . 除了DispatcherServletSpringMVC还会提供其他…...

苍穹外卖第一天

角色分工 技术选型 pojo子模块 nginx反向代理 MD5密码加密...

C# Winform enter键怎么去关联button

1.关联按钮上的Key事件按钮上的keypress&#xff0c;keydown&#xff0c;keyup事件随便一个即可private void textBox1_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode Keys.Enter){this.textBox2.Focus();}}2.窗体上的事件private void textBox2_KeyPress(object sen…...

LeGO LOAM坐标系问题的自我思考

LeGO LOAM坐标系问题的自我思考 IMU坐标系LeGO LOAM代码分析代码 对于IMU输出测量值的integration积分过程欧拉角的旋转矩阵VeloToStartIMU()函数TransformToStartIMU(PointType *p) IMU坐标系 在LeGO LOAM中IMU坐标系的形式采用前(x)-左(y)-上(z)的形式&#xff0c;IMU坐标系…...

vim交换文件的作用

1.数据恢复&#xff1a;因为vim异常的退出&#xff0c;使用交换文件可以恢复之前的修改内容。 2.防止多人同时编辑&#xff1a;vim检测到交换文件的存在,会给出提示&#xff0c;以避免一个文件同时被多人编辑。 &#xff08;vim交换文件的工作原理&#xff1a;vim交换文件的工作…...

PHP实现混合加密方式,提高加密的安全性(代码解密)

代码1&#xff1a; <?php // 需要加密的内容 $plaintext 授权服务器拒绝连接;// 1. AES加密部分 $aesKey openssl_random_pseudo_bytes(32); // 生成256位AES密钥 $iv openssl_random_pseudo_bytes(16); // 生成128位IV// AES加密&#xff08;CBC模式&#xff09…...

五. Redis 配置内容(详细配置说明)

五. Redis 配置内容(详细配置说明) 文章目录 五. Redis 配置内容(详细配置说明)1. Units 单位配置2. INCLUDES (包含)配置3. NETWORK (网络)配置3.1 bind(配置访问内容)3.2 protected-mode (保护模式)3.3 port(端口)配置3.4 timeout(客户端超时时间)配置3.5 tcp-keepalive()配置…...

安卓通过网络获取位置的方法

一 方法介绍 1. 基本权限设置 首先需要在 AndroidManifest.xml 中添加必要权限&#xff1a; xml <uses-permission android:name"android.permission.INTERNET" /> <uses-permission android:name"android.permission.ACCESS_NETWORK_STATE" /&g…...

python leetcode 笔记

只为记录一些python相关的特殊写法 无穷大&#xff0c;无穷小&#xff0c;NAN float(inf), float(-inf), float(nan) 判断字符的类型 isdigit(x) isspace(x) 字符串拼接 /.join([a,b,c]) # a/b/c 格式转换&#xff0c;字符转整形 ord(a) # 97 chr(97) # a 进制转…...

使用HttpClient和HttpRequest发送HTTP请求

项目中经常会用到向第三方系统发送请求来传递数据或者获得信息&#xff0c;一般用的比较多的为HttpClient 和 HttpRequest&#xff0c;这里简要总结一下 HttpClient 和 HttpRequest 的用法 一、HttpClient 1. 发送get请求 public static String get(String url, Map<Stri…...

(9) 上:学习与验证 linux 里的 epoll 对象里的 EPOLLIN、 EPOLLHUP 与 EPOLLRDHUP 的不同

&#xff08;1&#xff09;经过之前的学习。俺认为结论是这样的&#xff0c;因为三次握手到四次挥手&#xff0c;到 RST 报文&#xff0c;都是 tcp 连接上收到了报文&#xff0c;这都属于读事件。所以&#xff1a; EPOLLIN : 包含了读事件&#xff0c; FIN 报文的正常四次挥手、…...

C#属性和字段(访问修饰符)

不同点逻辑性/灵活性存储性访问性使用范围安全性属性(Property)源于字段,对字段的扩展,逻辑字段并不占用实际的内存可以被其他类访问对接收的数据范围做限定,外部使用增加了数据的安全性字段(Field)不经过逻辑处理占用内存的空间及位置大部分字段不能直接被访问内存使用不安全 …...

【C语言指针】指针和函数

文章目录 一、前言二、指针函数2.1 概念2.2 定义2.3 具体例子 三、函数指针3.1 概念3.2 定义3.3 具体例子3.4 回调函数3.4.1 概念3.4.2 例子13.4.3 例子2 四、函数指针数组4.1 概念4.2 定义4.3 具体例子 五、函数指针数组的指针5.1 概念5.2 定义5.3 具体例子 一、前言 关于指针…...

因果推断与机器学习—用机器学习解决因果推断问题

Judea Pearl 将当前备受瞩目的机器学习研究戏谑地称为“仅限于曲线拟合”,然而,曲线拟合的实现绝非易事。机器学习模型在图像识别、语音识别、自然语言处理、蛋白质分子结构预测以及搜索推荐等多个领域均展现出显著的应用效果。 在因果推断任务中,在完成因果效应识别之后,需…...

2025全自动企业站群镜像管理系统 | 支持繁简转换拼音插入

2025全自动企业站群镜像管理系统 | 支持繁简转换拼音插入 在全球化的今天&#xff0c;企业面临着管理多站点的挑战&#xff0c;尤其是跨语言和地理位置的站点。为此&#xff0c;我们设计了一套基于PHP的全自动企业站群镜像管理系统&#xff0c;它不仅能够自动化站点的管理&…...

基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发

基于阿里云百炼大模型Sensevoice-1的语音识别与文本保存工具开发 摘要 随着人工智能技术的不断发展&#xff0c;语音识别在会议记录、语音笔记等场景中得到了广泛应用。本文介绍了一个基于Python和阿里云百炼大模型的语音识别与文本保存工具的开发过程。该工具能够高效地识别东…...