数组 for-range 遍历|学习笔记

简介: 快速学习数组 for-range 遍历。

开发者学堂课程【GO 语言核心编程-基础语法、数组、切片、Map:数组 for-range 遍历学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/625/detail/9629


数组 for-range 遍历

 

内容介绍:

一、数组的遍历的方式

二、for-range 的基本语法及说明

三、for-range 的遍历案例

四、数组的使用注意事项和细节

 

一、数组的遍历的方式

1.数组的遍历

(1) 方式1-常规遍历:

var score [5]float64

for i = 0; i < len( score);  i++{

fmt.Printf("请输入第%d 个元素的值\n", i+1)

fmt.scanln(&score[i])

}

//变量数组打印

for i := 0; i < len(score); i++{

fmt.Printf("score[%d]=%v\n", i, score[i])

(2) 方式2-for-range 结构遍历

这是 Go 语言一种独有的结构,可以用来遍历访问数组的元素。

 

二、for-range 的基本语法及说明

1.for-range 的基本语法

for index, value := range array01 {  

//:=是一个类型推导符,相当于定义的同时进行赋值。array01就是需要遍历的数组的名称。

}

2.说明

(1) 第一个返回值 index 是数组的下标   //for-range 在遍历数组的时候,会依次遍历,它会先把 array01第一个元素的下标放到 index

(2) 第二个 value 是在该下标位置的值  //index 下标对应的值就是 value

(3) 他们都是仅在 for 循环内部可见的局部变量  //涉及到变量的作用域:如果变量是在 for 循环的语句块中定义的,那它的作用域只能在 for 循环的代码块中,超出代码块就无法使用了。index 和 value只能在{}中使用

(4) 遍历数组元素的时候,如果不想使用下标 index,可以直接把下标 index标为下划线_  //下划线_是占位符和忽略符

(5) index 和 value 的名称不是固定的,即程序员可以自行指定,一般命名为 index 和 value  //index,value 两个变量就是名称,并不是固定的,而是程序员指定的

 

三、for-range的遍历案例

1.案例:

(1) 新建一个文件夹为 forrange,在创建一个文件为 main.go

package main

import ("fmt"

)

func main() {  //编写一个组函数

//演示 for-range 遍历数组

首先定义一个数组

var heroes [3] string = [3]string{"宋江",“吴用",“卢俊义}

//进行初始化

可以进行优化和类型推导:

heroes :=[…] string {"宋江",“吴用",“卢俊义}  

//注意:必须写上数据类型,否则会报错

//使用常规的方式遍历不进行演示

//使用 for-range 进行遍历

for i, v := range heroes { //i就是下标

fmt.Printf("i=%v  v=%v\n“, i , v) //输出下标 i

执行遍历,输出结果如下:

image.png

可以发现值已经被取出。下标为0的元素值为宋江,下标为1的元素的值为吴用,下标为2的元素的值为卢俊义

//使用传统的方式也可以得到结果,语法上也不会报错

2fmt.Printf( "heroes[%d]=%v\n", i, heroes[i])

}

i=0,元素的值为宋江,i=1时,元素的值为吴用,i=2时,元素的值为卢俊义

3如果指向要下标而不想要值,则可以这样实现:

for _, v := range heroes {

fmt.Printf(”元素的值=%v \ n", v)

}

可以看到元素的值同样可以取出。

4注意:i和v的作用域只在对应的 for 循环中,如果离开了这个环境则 i 和 v 将无法使用,因为这是变量作用域规定好的。

 

四、数组的使用注意事项和细节

1. 数组是多个相同类型数据的组合,一个数组一旦声明/定义了,其长度是固定的,不能动态变化。

2. var arr []int 这时 arr 就是一个 slice 切片,切片后面专门讲解

3. 数组中的元素可以是任何数据类型,包括值类型和引用类型,但是不能用。

4. 数组创建后,如果没有赋值,有默认值

5. 数值类型数组:默认值为0

6. 字符串数组:默认值为“”

7. boal 教组:默认值为 false

8. 使用数组的步骤1.声明数组并开辟空间2.给数组各个元素赋值3.使用数组

9. 数组的下标是从0开始的。

10. 数组下标必须在指定范围内使用,否则报 panic。数组越界,比如

11. var arr [5]int 则有效下标为0-4

12. Go 的数组属值类型,在默认情况下是值传递,因此会进行值拷贝。数组间不会相互影响如想在其它函数中,去修改原来的数组,可以使用引用传递(指针方式)

相关文章
|
5天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
4天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
4天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
1006 0
|
7天前
|
存储 机器学习/深度学习 人工智能
大模型微调技术:LoRA原理与实践
本文深入解析大语言模型微调中的关键技术——低秩自适应(LoRA)。通过分析全参数微调的计算瓶颈,详细阐述LoRA的数学原理、实现机制和优势特点。文章包含完整的PyTorch实现代码、性能对比实验以及实际应用场景,为开发者提供高效微调大模型的实践指南。
640 2
|
6天前
|
JavaScript API 开发工具
如何在原生App中调用Uniapp的原生功能?
如何在原生App中调用Uniapp的原生功能?
316 139
|
5天前
|
编解码 自然语言处理 文字识别
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
凌晨,Qwen3-VL系列再添新成员——Dense架构的Qwen3-VL-8B、Qwen3-VL-4B 模型,本地部署友好,并完整保留了Qwen3-VL的全部表现,评测指标表现优秀。
422 7
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大