首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Go程序例子(16):遍历内置类型

Go程序例子(16):遍历内置类型

原创
作者头像
用户11078756
发布2024-12-12 14:01:07
发布2024-12-12 14:01:07
1820
举报
文章被收录于专栏:go程序例子go程序例子

Range 可以用于遍历多种内建数据结构。让我们看看如何在我们已经学习过的一些数据结构中使用 range。

代码语言:go
复制
package main

import "fmt"

func main() {
	// 这里我们使用 range 来对切片中的数字求和。数组也可以这样使用。
    nums := []int{2, 3, 4}
    sum := 0
    for _, num := range nums {
        sum += num
    }
    fmt.Println("sum:", sum)
	// 在数组和切片上使用 range 会同时提供每个条目的索引和值。上面我们并不需要索引,因此使用空标识符 _ 忽略了它。但有时候,我们实际上需要使用索引。
    for i, num := range nums {
        if num == 3 {
            fmt.Println("index:", i)
        }
    }
	// 在 map 上使用 range 会遍历键/值对。
    kvs := map[string]string{"a": "apple", "b": "banana"}
    for k, v := range kvs {
        fmt.Printf("%s -> %s\n", k, v)
    }
	// range 还可以只遍历 map 的键。
    for k := range kvs {
        fmt.Println("key:", k)
    }
	// 在字符串上使用 range 会遍历 Unicode 代码点。第一个值是符文的起始字节索引,第二个值是符文本身。有关更多详细信息,请参阅 **字符串和符文**。
    for i, c := range "go" {
        fmt.Println(i, c)
    }
}

运行结果:

代码语言:javascript
复制
$ go run range-over-built-in-types.go
sum: 9
index: 1
a -> apple
b -> banana
key: a
key: b
0 103
1 111

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档