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

Go 数组

数组用于在单个变量中存储相同类型的多个值,而不是为每个值声明单独的变量。

声明数组

在Go中,有两种声明数组的方式:

  1. 使用var关键字:

语法

var array_name = [length]datatype{values} // 这里定义了长度

或者

var array_name = [...]datatype{values} // 这里长度是隐含的

  1. 使用:=符号:

语法

array_name := [length]datatype{values} // 这里定义了长度

或者

array_name := [...]datatype{values} // 这里长度是隐含的

注意:长度指定了数组中要存储的元素数量。在Go中,数组具有固定的长度。数组的长度可以通过一个数字来定义,也可以是隐含的(这意味着编译器根据值的数量来决定数组的长度)。

数组示例
这个示例声明了两个具有定义长度的数组(arr1和arr2):

package mainimport "fmt"func main() {var arr1 = [3]int{1, 2, 3}arr2 := [5]int{4, 5, 6, 7, 8}fmt.Println(arr1)fmt.Println(arr2)
}

输出:

[1 2 3]
[4 5 6 7 8]

示例
这个示例声明了两个隐含长度的数组(arr1和arr2):

package mainimport "fmt"func main() {var arr1 = [...]int{1, 2, 3}arr2 := [...]int{4, 5, 6, 7, 8}fmt.Println(arr1)fmt.Println(arr2)
}

输出:

[1 2 3]
[4 5 6 7 8]

示例
这个示例声明了一个字符串数组:

package mainimport "fmt"func main() {var cars = [4]string{"Volvo", "BMW", "Ford", "Mazda"}fmt.Print(cars)
}

输出:

[Volvo BMW Ford Mazda]

访问数组元素

您可以通过引用索引号来访问特定的数组元素。

在Go中,数组索引从0开始。这意味着[0]是第一个元素,[1]是第二个元素,依此类推。

示例

这个示例展示了如何访问prices数组中的第一个和第三个元素:

package mainimport "fmt"func main() {prices := [3]int{10, 20, 30}fmt.Println(prices[0])fmt.Println(prices[2])
}

输出:

10

30

更改数组元素

您还可以通过引用索引号来更改特定数组元素的值。

示例

这个示例展示了如何更改prices数组中第三个元素的值:

package mainimport "fmt"func main() {prices := [3]int{10, 20, 30}prices[2] = 50fmt.Println(prices)
}

输出:

[10 20 50]

数组初始化

如果数组或其元素在代码中没有被初始化,它将被分配其类型的默认值。

提示:int的默认值是0,string的默认值是""。

示例

package mainimport "fmt"func main() {arr1 := [5]int{}           // 未初始化arr2 := [5]int{1, 2}       // 部分初始化arr3 := [5]int{1, 2, 3, 4, 5} // 全部初始化fmt.Println(arr1)fmt.Println(arr2)fmt.Println(arr3)
}

输出:

[0 0 0 0 0]

[1 2 0 0 0]

[1 2 3 4 5]

仅初始化特定元素

也可以仅初始化数组中的特定元素。

示例

这个示例仅初始化数组的第二和第三个元素:

package mainimport "fmt"func main() {arr1 := [5]int{1: 10, 2: 40}fmt.Println(arr1)
}

输出:

[0 10 40 0 0]

示例解释

上面的数组有5个元素。

1:10 表示:将10赋值给数组索引1(第二个元素)。

2:40 表示:将40赋值给数组索引2(第三个元素)。

查找数组的长度

使用len()函数可以找到数组的长度:

示例

package mainimport "fmt"func main() {arr1 := [4]string{"Volvo", "BMW", "Ford", "Mazda"}arr2 := [...]int{1, 2, 3, 4, 5, 6}fmt.Println(len(arr1))fmt.Println(len(arr2))
}

输出:

4

6

最后

为了方便其他设备和平台的小伙伴观看往期文章,链接奉上:

公众号搜索Let us Coding知乎开源中国CSDN思否掘金InfoQ简书博客园慕课51CTOhelloworld腾讯开发者社区阿里开发者社区

看完如果觉得有帮助,欢迎点赞、收藏关注

相关文章:

Go 数组

数组用于在单个变量中存储相同类型的多个值,而不是为每个值声明单独的变量。 声明数组 在Go中,有两种声明数组的方式: 使用var关键字: 语法 var array_name [length]datatype{values} // 这里定义了长度 或者 var array_n…...

04架构管理之分支管理实践-一种git分支管理最佳实践

专栏说明:针对于企业的架构管理岗位,分享架构管理岗位的职责,工作内容,指导架构师如何完成架构管理工作,完成架构师到架构管理者的转变。计划以10篇博客阐述清楚架构管理工作,专栏名称:架构管理…...

D.OASIS City 和 Warrix 在The Sandbox 庆祝 Rise of the 10th Legend十周年

D.OASIS 首次展示了变革性娱乐 D.OASIS City,正如它与 WARRIX 一起承诺的那样。WARRIX 是获得泰国国家队球衣生产授权的标志性运动服装品牌。 这款激动人心的游戏冒险游戏于今天推出,让用户能够投入 D.OASIS City x WARRIX:Rise of the 10th…...

Git基本操作(Idea版)

第一次发布项目(本地->远程) 方式一 通过push的方式推送本地库到远程库(远程已创建好仓库) 这种方式需要提前创建好仓库。 右键点击项目,可以将当前分支的内容 push 到 GitHub 的远程仓库中。 注意&#xff1a…...

NSS [羊城杯 2020]easyser

NSS [羊城杯 2020]easyser 开题。很容易让人觉得环境坏了。 不要慌,无从下手时。看源码、扫目录、抓包。一套操作下来,发现几个可以下手的路由。 /index.php /robots.txt 访问 /star1.php,一说到百度,就猜测是否存在SSRF。 源码中…...

理解底层— —Golang的log库,二开实现自定义Logger

理解底层— —Golang的log库,实现自定义Logger 1 分析实现思路 基于golang中自带的log库实现:对日志实现设置日志级别,每天生成一个文件,同时添加上前缀以及展示文件名等 日志级别,通过添加prefix:[INFO]、…...

RabbitMQ---Spring AMQP

Spring AMQP 1. 简介 Spring有很多不同的项目,其中就有对AMQP的支持: Spring AMQP的页面:http://spring.io/projects/spring-amqp 注意这里一段描述: Spring-amqp是对AMQP协议的抽象实现,而spring-rabbit 是对协…...

C语言练习题解析:挑战与突破,开启编程新篇章!(2)

💓博客主页:江池俊的博客⏩收录专栏:C语言刷题专栏👉专栏推荐:✅C语言初阶之路 ✅C语言进阶之路💻代码仓库:江池俊的代码仓库🎉欢迎大家点赞👍评论📝收藏⭐ 文…...

sqlite3 加密访问

关于sqlite3 加密 一、相关加密用到的sqlcipher 1.1 sqlcipher 是一个数据库加密的开源库 sqlcipher开源地址 我这边是使用的docker镜像&#xff0c;镜像地址&#xff1a; https://hub.docker.com/r/pallocchi/sqlcipher 加密格式 docker run -v <workdir>:/sqlcip…...

clickhouse 系列1:clickhouse v21.7.5.29 源码编译

1.gcc10安装 安装依赖 yum update yum install -y gcc gcc-c++ yum install -y bzip2 下载gcc 源码包并解压 wget -P /data/base https://mirrors.aliyun.com/gnu/gcc/gcc-10.2.0/gcc-10.2.0.tar.gz cd /data/base && tar -xzvf /data/base/gcc-...

servlet初体验之环境搭建!!!

我们需要用到tomcat服务器&#xff0c;咩有下载的小伙伴看过来&#xff1a;如何正确下载tomcat&#xff1f;&#xff1f;&#xff1f;_明天更新的博客-CSDN博客 1. 创建普通的Java项目&#xff0c;并在项目中创建libs目录存放第三方的jar包。 建立普通项目 创建libs目录存放第三…...

宁芝 NIZ 键盘开机需要重新插拔 USB 线才能使用

宁芝 NIZ 键盘开机需要重新插拔 USB 线才能使用 问题描述 宁芝 NIZ 键盘开机后无法识别到键盘&#xff0c;需要重新插拔 USB 线才能使用。 解决方法 按住 Fn BackSpaceE 键 5 秒&#xff0c;键盘会切换模式, 状态灯闪 1 次为 USB 接口&#xff1b;状态灯闪 2 次为 PS / 2 …...

R编程教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件&#xff0c;它是一个用于统计计算和统计制图的优秀工具。R语言的核心是解释计算机语言&#xff0c;其允许分支和循环以及使用函数的模块化编程。 R语言允许与以C&#xff…...

[CMake教程] CMake列表 - list

目录 零、简介一、Reading二、Search三、Modification四、Ordering 零、简介 列表在CMake中大量使用。初始化列表语法如下&#xff1a; set(myList a b c) # Creates the list "a;b;c"归根结底&#xff0c;列表只是一个由分号分隔列表项的单个字符串&#xff0c;这…...

报错 - net::ERR_ABORTED 500 (Internal Server Error)

报错&#xff1a;net::ERR_ABORTED 500 (Internal Server Error) 根据提示找到对应文件 解决&#xff1a;检查代码&#xff0c;根据高亮颜色判断&#xff0c;发现箭头函数漏了一个>。 报错&#xff1a;Uncaught TypeError: Assignment to constant variable. 原因&#x…...

【Java Easypoi Apache poi】 Word导入与导出

引入依赖 <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId> </dependency> <!-- 下面的版本需要对应上面依赖中的版本 否则可能会起冲突 --> <!-- 下面的依赖主要是为了使用A…...

Java稀疏数组

目录 1.稀疏数组 2.稀疏数组的使用 2.1 二维数组转换为稀疏数组 2.2 稀疏数组转换为二维数组 1.稀疏数组 稀疏数组&#xff08;Sparse Array&#xff09;&#xff1a;当一个数组中的大部分元素为相同的值&#xff0c;可使用稀疏数组来保存该数组&#xff0c;可以将稀疏数组…...

内存管理框架 --- 基础知识

文章目录 一、内存管理1.1 内存管理的出现1.2 内存管理的用途1.2.1 虚拟内存和物理内存的定义1.2.1.1 什么是虚拟内存&#xff1f; 1.2.2 虚拟内存的划分&#xff1a;用户空间与内核空间 1.3 操作系统和MMU1.3.1 OS和MMU的关系1.3.2 虚拟地址到物理地址的映射流程 1.4 物理内存…...

React + Next.js 搭建项目(配有对比介绍一起食用)

文章标题 01 Next.js 是什么02 Next.js 搭建工具 create-next-app03 create-react-app 与 create-next-app 的区别04 快速构建 Next.js 项目05 App Router 与 Pages Router 的区别 01 Next.js 是什么 Next.js 是一个 React 框架&#xff0c;它允许你使用 React 框架建立超强的…...

【Java】Java基础

环境准备 安装JDK和JRE 下载JDK&#xff0c;可以在官网Java Downloads | Oracle 中国下载&#xff0c;但是这里需要注册才能够下载。在Index of java-local/jdk (huaweicloud.com)也可以下载到&#xff0c;但是版本比较老&#xff0c;关系不大&#xff0c;直接下载&#xff0…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)

题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

Python实现简单音频数据压缩与解压算法

Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中&#xff0c;压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言&#xff0c;提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...

6.9本日总结

一、英语 复习默写list11list18&#xff0c;订正07年第3篇阅读 二、数学 学习线代第一讲&#xff0c;写15讲课后题 三、408 学习计组第二章&#xff0c;写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语&#xff1a;复习l默写sit12list17&#…...