go 提供了内置 for 和 range 函数,可用于遍历稀疏数据结构:使用 for 遍历 map 中的键值对:for key, value := range sparsemap { ... }使用简化的 range 形式提取键或值:for key := range sparsemap { ... } / for value := range sparsemap { ... }实战案例:使用 range 排序并打印包含用户 id 和姓名的 map 中的用户列表。
使用 Golang 函数遍历稀疏数据结构
稀疏数据结构在处理包含大量缺失或零值的集合时非常有用。Golang 标准库提供了 for 和 range 等内置函数,可用于方便地遍历这些稀疏结构。
使用 for 遍历 map
map 是 Go 中最常见的稀疏数据结构。每个键值对都是一个独立的元素,这使得使用 for 遍历非常简单:
package main import "fmt" func main() { sparseMap := make(map[string]int) sparseMap["key1"] = 10 sparseMap["key3"] = 20 for key, value := range sparseMap { fmt.Println(key, value) } }
登录后复制
输出:
立即学习“go语言免费学习笔记(深入)”;
key1 10 key3 20
登录后复制
使用 range 提取键或值
如果只需要遍历键或值,可以使用 range 的简化形式:
for key := range sparseMap { fmt.Println(key) } for value := range sparseMap { fmt.Println(value) }
登录后复制
输出:
立即学习“go语言免费学习笔记(深入)”;
key1 key3 10 20
登录后复制
实战案例
假设你有一个用户列表,其中每个用户都有一个唯一的 ID 和一个姓名。用户列表可以用一个 map 来表示,其中键是用户 ID,值是用户姓名。
要按用户姓名排序并打印列表,你可以使用 range 和 fmt.Printf:
userList := make(map[int]string) userList[1] = "John" userList[3] = "Alice" userList[2] = "Bob" keys := make([]int, len(userList)) i := 0 for key := range userList { keys[i] = key i++ } sort.Ints(keys) for _, key := range keys { fmt.Printf("%d: %s\n", key, userList[key]) }
登录后复制
输出:
立即学习“go语言免费学习笔记(深入)”;
1: John 2: Bob 3: Alice
登录后复制
以上就是如何使用 Golang 函数遍历稀疏的数据结构?的详细内容,更多请关注抖狐科技其它相关文章!
-
谷歌浏览器书签是新标签页打开还是旧页打开怎么解决
谷歌浏览器是很多用户们都十分喜爱的一款浏览器,但是也有不少的用户们在设置书签是新标签页打开功能后还是旧页打开,那么这是怎么回事?下面就让小编来为用户们来仔细的介绍一下谷歌浏览器书签是新标签页打开还是旧...
-
C++ 函数内存管理:栈上分配和堆上分配的优点和缺点
c++++ 中变量内存分配可分为栈上分配和堆上分配,每种方式都有利弊:栈上分配速度快,范围明确,但变量大小受限,且可能造成栈溢出。堆上分配灵活,可分配任意大小变量,但速度较慢,容易造成内存泄漏。选择分...
-
如何彻底关闭windows defender安全中心
windows defender 安全中心是 windows 10 和 11 系统中内置的安全工具,可帮助保护您的计算机免受威胁。然而,有时您可能需要暂时或永久关闭它,以进行故障排除或安装第三方安全软...
-
生死一线x动作RPG“TRIBENINE”亮相Steam新品节
Akatsuki Games Inc.(本社:东京都品川区,代表董事兼 CEO:戸塚佑贵,为日本Akatsuki Inc.全资子公司)与 Tookyo Games (本社:埼玉县所泽市、代表董事兼...
-
《世界启元》技能“攻心为上”获取途径及搭配推荐
在《世界启元》的沉浸式世界中,技能扮演着至关重要的角色,为英雄赋予了独一无二的能力。了解并战略性地运用这些技能是游戏体验的精髓所在。php小编子墨特别整理了以下摘要,引导各位玩家充分掌握不同技能的特点...