如何使用 Golang 函数遍历稀疏的数据结构?

go 提供了内置 for 和 range 函数,可用于遍历稀疏数据结构:使用 for 遍历 map 中的键值对:for key, value := range sparsemap { ... }使用简化的 range 形式提取键或值:for key := range sparsemap { ... } / for value := range sparsemap { ... }实战案例:使用 range 排序并打印包含用户 id 和姓名的 map 中的用户列表。

如何使用 Golang 函数遍历稀疏的数据结构?

使用 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)
  }
}

输出:

key1 10
key3 20

使用 range 提取键或值

如果只需要遍历键或值,可以使用 range 的简化形式:

for key := range sparseMap {
  fmt.Println(key)
}

for value := range sparseMap {
  fmt.Println(value)
}

输出:

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])
}

输出:

1: John
2: Bob
3: Alice

以上就是如何使用 Golang 函数遍历稀疏的数据结构?的详细内容,更多请关注其它相关文章!