Golang如何使用range遍历集合

答案:range是Go语言中用于遍历集合类型的关键特性,支持数组、切片、字符串、map和通道。1. 遍历数组或切片时返回索引和元素值,可忽略索引只取值。2. 遍历字符串时返回字节索引和rune,自动处理UTF-8编码,中文字符索引非连续递增。3. 遍历map时返回键值对,顺序无序。4. 遍历通道时持续接收值直至通道关闭。

golang如何使用range遍历集合

在Go语言中,range 是用于遍历集合类型的关键特性,支持数组、切片、字符串、map以及通道。使用 range 可以方便地访问集合中的每个元素,通常配合 for 循环使用。

遍历数组和切片

对数组或切片使用 range 时,会返回两个值:索引和对应元素的副本。

range 返回的第一个值是索引,第二个是元素值。如果不需要索引,可以用下划线 _ 忽略。

示例:

nums := []int{10, 20, 30}
for i, v := range nums {
  fmt.Printf(“索引: %d, 值: %d\n”, i, v)
}

如果只关心值:

立即学习“go语言免费学习笔记(深入)”;

for _, v := range nums {
  fmt.Println(v)
}

遍历字符串

range 遍历字符串时,返回的是字符的起始字节索引和对应的 rune(Unicode码点),自动处理 UTF-8 编码。

示例:

s := “你好 Go”
for i, r := range s {
  fmt.Printf(“位置: %d, 字符: %c\n”, i, r)
}

注意:中文字符占多个字节,所以索引不是连续递增1。

Replit Ghostwrite Replit Ghostwrite

一种基于 ML 的工具,可提供代码完成、生成、转换和编辑器内搜索功能。

Replit Ghostwrite 93 查看详情 Replit Ghostwrite

遍历 map

map 的遍历使用 range,返回键和值。由于 map 是无序的,每次遍历顺序可能不同。

示例:

m := map[string]int{“apple”: 5, “banana”: 3}
for k, v := range m {
  fmt.Printf(“水果: %s, 数量: %d\n”, k, v)
}

如果只需要键:

for k := range m {
  fmt.Println(k)
}

遍历通道(channel)

range 可用于从通道中持续接收值,直到通道被关闭。

示例:

ch := make(chan int, 3)
ch
ch
ch
close(ch)

for v := range ch {
  fmt.Println(v)
}

循环会在通道关闭后自动结束。

基本上就这些。合理使用 range 能让代码更简洁清晰。注意根据集合类型判断返回值含义,避免误用索引或值。特别是遍历 string 和 map 时,行为和其他语言略有不同,需留意。

以上就是Golang如何使用range遍历集合的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1109881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月2日 13:01:03
下一篇 2025年12月2日 13:01:45

相关推荐

发表回复

登录后才能评论
关注微信