gpt4 book ai didi

go - 将 map 嵌入到go语言的结构中

转载 作者:IT王子 更新时间:2023-10-29 01:58:53 25 4
gpt4 key购买 nike

所以在这个答案中 here ,据说不能将 map 嵌入到结构中。然而,我一直在摆弄它,想出了这个,它确实有效,而且非常简单。

    package main

import (
"fmt"
"runtime"
)

type record struct {
m map[string]int
}




func main() {
practice := record{m:make(map[string]int)}
practice.m["foo"] = 2
fmt.Println(practice.m)
runtime.GC()
}

这会打印 map[foo:2]

但是,我的问题是,在结构中使用这种映射实现是否有任何负面影响,或者是否有更有效的方法来做到这一点?

最佳答案

  1. 你可以做到,绝对没问题。

  2. 那不是“嵌入”。嵌入方式something specific — 在结构中包含命名类型的无名字段。您的 map 未嵌入,它是名为“m”的普通成员(member)。

  3. 您链接的答案有点误导:那里问题的答案(“我可以在没有 MarshalJSON 方法的情况下扁平化这个 JSON 输出吗”)确实不能,但嵌入实际上不是真的结构中的映射是被禁止的。如果您创建一个命名类型,它是一个映射类型,您可以将它嵌入到一个结构中就好了。它只是不会以提出该问题的人喜欢的方式以 JSON 格式输出。

关于go - 将 map 嵌入到go语言的结构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36926953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com