数据结构

map

预计阅读时间2 分钟 5 views

前言
在Go语言中,映射(Map)是一种以键值对形式存储元素的数据结构。这里的键是唯一的标识符,与映射中的每个值相关联。

作用
映射提供了高效的查找、添加和删除操作,可以用于实现各种数据结构,如字典、缓存等。

使用场景
例如,我们可以使用映射来存储学生的学科成绩,将学科作为键,成绩作为值,便于快速查找和更新学生的成绩信息。

在Go中创建映射

前言
创建一个映射非常简单,只需使用内置的map函数或映射字面量。

作用
通过映射字面量,我们可以快速定义和初始化一个映射,并指定键值对。

示例
以下是一个在Go中创建映射的示例:

package main
import "fmt"

func main() {
  // 创建一个映射
  subjectMarks := map[string]float32{"Golang": 85, "Java": 80, "Python": 81}

  fmt.Println(subjectMarks)
}

输出

map[Golang:85 Java:80 Python:81]

结语
在这个示例中,我们创建了一个名为subjectMarks的映射,并打印了映射中的键值对。

访问Go映射中的值

前言
我们可以通过键来访问映射中的值。这使得我们能够根据需要快速获取相关数据。

作用
通过键访问值,能够高效地检索和使用映射中的数据。

示例
以下是访问映射中值的示例:

package main
import "fmt"

func main() {
  // 创建一个映射
  flowerColor := map[string]string{"Sunflower": "Yellow", "Jasmine": "White", "Hibiscus": "Red"}

  // 访问键Sunflower的值
  fmt.Println(flowerColor["Sunflower"])  // Yellow

  // 访问键Hibiscus的值
  fmt.Println(flowerColor["Hibiscus"])  // Red
}

结语
在这个示例中,我们通过键SunflowerHibiscus访问了映射flowerColor中的对应值。

修改Go映射中的值

前言
要修改映射中的值,只需直接为对应的键分配一个新值即可。

作用
通过直接修改键对应的值,我们可以更新映射中的数据。

示例
以下是修改映射中值的示例:

package main
import "fmt"

func main() {
  // 创建一个映射
  capital := map[string]string{ "Nepal": "Kathmandu", "US": "New York"}
  fmt.Println("Initial Map: ", capital)

  // 将US的值修改为Washington DC
  capital["US"] = "Washington DC"

  fmt.Println("Updated Map: ", capital)
}

输出

Initial Map:  map[Nepal:Kathmandu US:New York]
Updated Map:  map[Nepal:Kathmandu US:Washington DC]

结语
在这个示例中,我们将映射capital中键US的值从New York修改为Washington DC

向Go映射中添加元素

前言
除了创建时定义元素外,我们还可以向现有的映射中添加新元素。

作用
通过添加元素,我们可以在映射中存储更多的数据。

示例
以下是向映射中添加元素的示例:

package main
import "fmt"

func main() {
  // 创建一个映射
  students := map[int]string{1: "John", 2: "Lily"}
  fmt.Println("Initial Map: ", students)

  // 添加键为3的元素
  students[3] = "Robin"

  // 添加键为5的元素
  students[5] = "Julie"

  fmt.Println("Updated Map: ", students)
}

输出

Initial Map:  map[1:John 2:Lily]
Updated Map:  map[1:John 2:Lily 3:Robin 5:Julie]

结语
在这个示例中,我们向映射students中添加了键为35的元素,并打印了更新后的映射。

删除Go映射中的元素

前言
要从映射中删除元素,我们可以使用delete()函数。

作用
通过删除不再需要的元素,我们可以保持映射的简洁和准确性。

示例
以下是删除映射中元素的示例:

package main
import "fmt"

func main() {
  // 创建一个映射
  personAge := map[string]int{"Hermione": 21, "Harry": 20, "John": 25}
  fmt.Println("Initial Map: ", personAge)

  // 删除键为John的元素
  delete(personAge, "John")

  fmt.Println("Updated Map: ", personAge)
}

输出

Initial Map:  map[Harry:20 Hermione:21 John:25]
Updated Map:  map[Harry:20 Hermione:21]

结语
在这个示例中,我们使用delete()函数删除了键为John的元素。

遍历Go映射

前言
我们可以使用Go的for range循环遍历映射中的每一个元素。

作用
遍历映射使得我们可以访问并处理映射中的所有键值对。

示例
以下是遍历映射的示例:

package main
import "fmt"

func main() {
  // 创建一个映射
  squaredNumber := map[int]int{2: 4, 3: 9, 4: 16, 5: 25}

  // 使用for-range循环遍历映射的每个键值对
  for number, squared := range squaredNumber {
    fmt.Printf("Square of %d is %d\n", number, squared)
  }
}

输出

Square of 2 is 4
Square of 3 is 9
Square of 4 is 16
Square of 5 is 25

结语
在这个示例中,我们使用for range循环遍历了映射squaredNumber中的每一个键值对,并打印出每个数字及其平方值。

Leave a Comment

分享此文档

map

或复制链接

内容