go语言for遍历数组或切片

简介: go语言for遍历数组或切片

在Go语言中,for循环可以非常方便地用来遍历数组或切片。Go提供了几种不同的方式来实现这一点,以适应不同的需求。下面是几种常见的方法:

1. 使用索引遍历

这是最直接的方法,通过索引访问数组或切片中的每个元素。

package main

import "fmt"

func main() {
   
    arr := [5]int{
   1, 2, 3, 4, 5}
    for i := 0; i < len(arr); i++ {
   
        fmt.Println(arr[i])
    }

    // 对于切片同样适用
    slice := []int{
   1, 2, 3, 4, 5}
    for i := 0; i < len(slice); i++ {
   
        fmt.Println(slice[i])
    }
}

2. 使用range关键字

range是一个更简洁的选项,它允许你同时获取索引和值(或者只取值),这使得代码更加清晰易读。

package main

import "fmt"

func main() {
   
    arr := [5]int{
   1, 2, 3, 4, 5}
    for index, value := range arr {
   
        fmt.Printf("Index: %d, Value: %d\n", index, value)
    }

    // 如果只需要值,可以使用空白标识符_忽略索引
    slice := []int{
   1, 2, 3, 4, 5}
    for _, value := range slice {
   
        fmt.Println(value)
    }
}

这里,range会自动处理迭代逻辑,包括边界条件等,因此通常推荐使用这种方式来遍历数组或切片。

3. 修改元素

如果你需要在遍历过程中修改数组或切片中的元素,也可以利用range来完成,但是需要注意的是,当涉及到切片时,直接修改返回的值副本不会影响原切片中的数据。如果想要修改原数据,应该通过索引来操作。

package main

import "fmt"

func main() {
   
    numbers := []int{
   1, 2, 3, 4, 5}

    // 错误示例:尝试修改值副本
    for _, num := range numbers {
   
        num = num * 2 // 这不会改变numbers中的任何东西
    }
    fmt.Println(numbers) // 输出仍然是[1 2 3 4 5]

    // 正确做法:通过索引修改
    for i, _ := range numbers {
   
        numbers[i] = numbers[i] * 2
    }
    fmt.Println(numbers) // 输出为[2 4 6 8 10]
}

以上就是使用Go语言的for循环来遍历数组或切片的一些基本方法。根据你的具体需求选择合适的方式。

目录
相关文章
|
6天前
|
存储 Go 索引
go语言中数组和切片
go语言中数组和切片
19 7
|
16天前
|
Go 索引
Go语言中,遍历数组或切片
在Go语言中,遍历数组或切片
33 6
|
8天前
|
Go
go语言for 遍历字符串
go语言for 遍历字符串
20 8
|
12天前
|
Go 索引
go语言遍历数组和切片
go语言遍历数组和切片
16 2
|
9天前
|
存储 Go 索引
go语言使用for循环遍历
go语言使用for循环遍历
23 7
|
12天前
|
Go 索引
go语言遍历字符串
go语言遍历字符串
17 3
|
1月前
|
Java Go 数据处理
go语言使用切片而非数组
【10月更文挑战第18天】
14 1
|
6月前
|
Go
go语言数组与切片
go语言数组与切片
|
7月前
|
测试技术 Go 容器
go语言中的数组与切片(一)
go语言中的数组与切片
56 0
go语言中的数组与切片(一)
|
7月前
|
存储 编译器 Serverless
go语言第四章(数组和切片)
go语言第四章(数组和切片)
59 0