开发者学堂课程【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
执行遍历,输出结果如下:
可以发现值已经被取出。下标为0的元素值为宋江,下标为1的元素的值为吴用,下标为2的元素的值为卢俊义
//使用传统的方式也可以得到结果,语法上也不会报错
(2)fmt.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 的数组属值类型,在默认情况下是值传递,因此会进行值拷贝。数组间不会相互影响如想在其它函数中,去修改原来的数组,可以使用引用传递(指针方式)