Go语言中的结构体与Map:简洁、灵活的数据结构组合

在 Go 语言中,你可以使用 map 来存储结构体的实例。这种情况下,结构体实例作为值被关联到 map 的键上。以下是一个简单的示例:

package main

import "fmt"

// 定义一个结构体
type Person struct {
    FirstName string
    LastName  string
    Age       int
}

func main() {
    // 创建一个 map,键是字符串,值是 Person 结构体
    peopleMap := make(map[string]Person)

    // 添加结构体实例到 map
    peopleMap["alice"] = Person{FirstName: "Alice", LastName: "Doe", Age: 25}
    peopleMap["bob"] = Person{FirstName: "Bob", LastName: "Smith", Age: 30}

    // 获取结构体实例
    alice := peopleMap["alice"]
    bob := peopleMap["bob"]

    // 打印信息
    fmt.Println("Alice:", alice)
    fmt.Println("Bob:", bob)
}

在这个例子中,peopleMap 是一个 map,其键是字符串,值是 Person 结构体的实例。你可以通过键来检索对应的结构体实例。

请注意,map 中的值是结构体的拷贝,而不是指向原始结构体的引用。这意味着对 map 中的结构体进行修改不会影响原始结构体。

如果你希望 map 中存储的是结构体的指针,可以将结构体的指针作为值存储:

package main

import "fmt"

type Person struct {
    FirstName string
    LastName  string
    Age       int
}

func main() {
    peopleMap := make(map[string]*Person)

    peopleMap["alice"] = &Person{FirstName: "Alice", LastName: "Doe", Age: 25}
    peopleMap["bob"] = &Person{FirstName: "Bob", LastName: "Smith", Age: 30}

    alice := peopleMap["alice"]
    bob := peopleMap["bob"]

    fmt.Println("Alice:", *alice)
    fmt.Println("Bob:", *bob)
}

在这个例子中,peopleMap 中的值是指向 Person 结构体的指针。这样,对 map 中的结构体进行修改会影响原始结构体。

相关推荐

  1. Go 语言切片:灵活数据结构

    2023-12-07 20:52:04       25 阅读
  2. go语言Map结构

    2023-12-07 20:52:04       43 阅读
  3. 2.Go基本语法-指针、结构Map

    2023-12-07 20:52:04       31 阅读
  4. Go语言秘密武器:魔力般Map数据结构解密

    2023-12-07 20:52:04       56 阅读
  5. C 语言结构「.」「->」区别

    2023-12-07 20:52:04       58 阅读
  6. 组合模式:构建灵活树形结构

    2023-12-07 20:52:04       31 阅读
  7. Go语言结构

    2023-12-07 20:52:04       26 阅读
  8. Go语言结构

    2023-12-07 20:52:04       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-07 20:52:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-07 20:52:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-07 20:52:04       82 阅读
  4. Python语言-面向对象

    2023-12-07 20:52:04       91 阅读

热门阅读

  1. Python高级数据结构——堆(Heap)

    2023-12-07 20:52:04       58 阅读
  2. 参数是Id,但要显示接口中的id对应的名称

    2023-12-07 20:52:04       61 阅读
  3. 二、C#笔记

    2023-12-07 20:52:04       58 阅读
  4. 高效的单行python脚本

    2023-12-07 20:52:04       62 阅读