GoLang之语言范围(Range)解读

 更新时间:2026年06月22日 15:26:17   作者:星宇星静  
Go语言中range关键字用于迭代数组、切片、映射和通道,并详细介绍其用法及注意事项;range返回两个值分别对应索引和元素值或键和值;灵活使用下标忽略不需要的返回值可简化迭代过程

Go语言中的range关键字用于迭代数组(数组、切片、字符串)、映射(map)、通道(channel)或者在 for 循环中迭代每一个元素。

range返回两个值,第一个是索引(或键),第二个是对应的值。

  • 在数组和切片上,range迭代返回索引和元素值;
  • 在映射上,返回键和对应的值;
  • 在通道上,返回通道中的数据。

一、在数组、切片上使用‘range’

package main

import "fmt"

func main() {
    // 在数组上使用range
    nums := [4]int{1, 2, 3, 4}
    for index, value := range nums {
        fmt.Printf("Index: %d, Value: %d\n", index, value)
    }

    // 在切片上使用range
    fruits := []string{"Apple", "Banana", "Orange"}
    for index, value := range fruits {
        fmt.Printf("Index: %d, Value: %s\n", index, value)
    }
}

二、在映射上使用range

package main

import "fmt"

func main() {
    // 在映射上使用range
    person := map[string]int{"Alice": 25, "Bob": 30, "Charlie": 35}
    for key, value := range person {
        fmt.Printf("Key: %s, Value: %d\n", key, value)
    }
}

三、在通道上使用range

package main

import "fmt"

func main() {
    // 在通道上使用range
    messages := make(chan string, 2)
    messages <- "Hello"
    messages <- "World"
    close(messages)

    for message := range messages {
        fmt.Println(message)
    }
}

“range”可以帮助简化迭代过程,使代码更加清晰和简洁。

在使用range时,如果你只需要其中一个返回值(索引或值),可以使用下划线_来忽略不需要的返回值。

例如:

package main

import "fmt"

func main() {
    nums := [4]int{1, 2, 3, 4}
    for _, value := range nums {
        fmt.Println(value)
    }
}

四、总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Golang语言如何高效拼接字符串详解

    Golang语言如何高效拼接字符串详解

    最近在做性能优化,有个函数里面的耗时特别长,看里面的操作大多是一些字符串拼接的操作,而字符串拼接在 golang 里面其实有很多种实现,下面这篇文章主要给大家介绍了关于Golang语言如何高效拼接字符串的相关资料,需要的朋友可以参考下
    2021-11-11
  • GO语言基础库os包的函数全面解析

    GO语言基础库os包的函数全面解析

    这篇文章主要为大家介绍了GO语言基础库os包的函数全面解析, 有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Golang Gin框架实现多种数据格式返回结果详解

    Golang Gin框架实现多种数据格式返回结果详解

    这篇文章主要介绍了Golang Gin框架实现多种数据格式返回结果,我们都知道,一个完整的请求包含请求和处理请求以及结果返回三个步骤,在服务器端对请求处理完成以后,会将结果返回给客户端,在gin框架中,支持返回多种请求数据格式,下面我们一起来看看
    2023-05-05
  • Go语言ants协程池的具体使用

    Go语言ants协程池的具体使用

    ants是Go语言中一款高效的协程池库,通过复用协程资源优化高并发场景下的性能,本文就来介绍一下golang中大名鼎鼎的ants协程池库的实现原理,感兴趣的可以了解一下
    2025-08-08
  • Go panic和recover函数使用细节深入探究

    Go panic和recover函数使用细节深入探究

    这篇文章主要为大家介绍了Go 的panic和recover函数使用细节深入探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • golang顺时针打印矩阵的方法示例

    golang顺时针打印矩阵的方法示例

    这篇文章主要介绍了golang顺时针打印矩阵的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Go实现自己的网络流量解析和行为检测引擎原理

    Go实现自己的网络流量解析和行为检测引擎原理

    这篇文章主要为大家介绍了Go实现自己的网络流量解析和行为检测引擎原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • mayfly-go部署和使用详解

    mayfly-go部署和使用详解

    这篇文章主要介绍了mayfly-go部署和使用详解,此处部署基于CentOS7.4部署,结合实例代码图文给大家讲解的非常详细,需要的朋友可以参考下
    2022-09-09
  • Go语言利用ssh连接服务器的方法步骤

    Go语言利用ssh连接服务器的方法步骤

    这篇文章主要介绍了Go语言利用ssh连接服务器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 如何理解Go函数是一等公民原理及使用场景

    如何理解Go函数是一等公民原理及使用场景

    这篇文章主要为大家介绍了如何理解Go函数是一等公民及使用场景详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07

最新评论