登录 主页

go - 数据类型: map[string]interface{}

2024-01-30 02:31PM

参考poe的解释:

在 go 语言中的 map 是一种键值对的数据结构。map 中的键和值可以是任意类型,但是在 Go 语言中,键的类型必须是可以用 == 运算符进行比较的类型,而值的类型则可以是任意类型。

map[string]interface{} 是一种数据类型,表示一个键值对的集合。它是一个无序的数据结构,其中的键必须是字符串类型,而值可以是任意类型。interface{} 是一个特殊的类型,可以表示任意类型的值。

map[string]interface{} 表示一个 map(映射),其中的键的类型是字符串,值的类型是 interface{}interface{} 类型是一个空接口,可以表示任意类型的值。所以在使用 map[string]interface{} 时,值可以是任意类型。

使用 map[string]interface{} 可以创建一个灵活的数据结构,可以存储不同类型的值,并通过字符串键来访问和操作这些值。

eg: array_interface.go 文件展示了如何使用 map[string]interface{} 创建和操作一个简单的键值对集合

package main
import "fmt"
func main() {
  // 创建一个map
  person := map[string]interface{}{
    "name": "Lily",
    "age": 18,
    "city": "beijing",
  }
  // 访问和修改map中的值
  fmt.Println(person["name"]) // 输出: Lily
  fmt.Println(person["age"])  // 输出: 18

  person["city"] = "shanghai"
  fmt.Println(person["city"]) // 输出: shanghai

  // 添加新的键值对
  person["gender"] = "female"

  // 删除键值对
  delete(person, "age")
  fmt.Println(person) // 输出: map[city:shanghai gender:female name:Lily]
}

在 array_interface.go 文件中创建了一个 person 变量,它是一个 map[string]interface{} 类型的 map。我们可以使用字符串键来访问和修改 person 中的值。我们还可以向 person 中添加新的键值对,并使用 delete 函数来删除特定的键值对。

运行结果:

meiyi@meiyi-Extensa-2511G:~/workspace/go$ go run array_interface.go 
Lily
18
shanghai
map[city:shanghai gender:female name:Lily]

 

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论