Go 对这个map[string]结构是如何定义的感到困惑

Go 对这个map[string]结构是如何定义的感到困惑,go,Go,我理解go中的地图,但这段代码让我感到困惑: testCases := map[string]struct { pod *api.Pod required []corev1.ResourceName err string }{ "init container resource missing": { pod: &api.Pod{ Spec:

我理解go中的地图,但这段代码让我感到困惑:

testCases := map[string]struct {
        pod      *api.Pod
        required []corev1.ResourceName
        err      string
    }{
        "init container resource missing": {
            pod: &api.Pod{
                Spec: api.PodSpec{
                    InitContainers: []api.Container{{
                        Resources: api.ResourceRequirements{
                            Requests: api.ResourceList{api.ResourceCPU: resource.MustParse("1m")},
                            Limits:   api.ResourceList{api.ResourceCPU: resource.MustParse("2m")},
                        },
                    }},
                },
            },
            required: []corev1.ResourceName{corev1.ResourceMemory},
            err:      `must specify memory`,
        },
        "container resource missing": {
            pod: &api.Pod{
                Spec: api.PodSpec{
                    Containers: []api.Container{{
                        Resources: api.ResourceRequirements{
                            Requests: api.ResourceList{api.ResourceCPU: resource.MustParse("1m")},
                            Limits:   api.ResourceList{api.ResourceCPU: resource.MustParse("2m")},
                        },
                    }},
                },
            },
            required: []corev1.ResourceName{corev1.ResourceMemory},
            err:      `must specify memory`,
        },
    }
我明白这一点:

testCases := map[string]struct
但接下来的事情对我来说毫无意义。代码如何定义api.Pod、corev1.ResourceName等。? 这不是一个字符串到结构的定义?

testCases是一个映射,其键类型为string,值类型为:

struct {
    pod      *api.Pod
    required []corev1.ResourceName
    err      string
}
pod是一个指向api类型值的指针。pod也是一个结构,必需是一个包含corev1.ResourceName类型元素的切片,err是一个字符串


因此,testCases映射将包含许多指向具有上述结构的结构的字符串。

之后是某种匿名结构

这相当于:

testCases := map[string]StructName
如果已指定结构,如:

type StructName struct {
    pod      *api.Pod
    required []corev1.ResourceName
    err      string
}

啊,好吧,现在说得通了。谢谢,我有点沮丧了!