我了解 maps in 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 等?那不是struct定义的字符串吗?
2 回答
侃侃尔雅
TA贡献1801条经验 获得超15个赞
testCasesstring是一个带有匿名类型键和值的映射:
struct {
pod *api.Pod
required []corev1.ResourceName
err string
}
是pod指向类型值api.Pod(也是结构)的指针,required是具有类型元素的切片corev1.ResourceName,并且err是字符串。
因此testCases映射将包含许多指向具有上述结构的结构的字符串。
慕神8447489
TA贡献1780条经验 获得超1个赞
接下来是某种“匿名”结构。
它将等同于:
testCases := map[string]StructName
如果您指定了如下结构:
type StructName struct {
pod *api.Pod
required []corev1.ResourceName
err string
}
- 2 回答
- 0 关注
- 153 浏览
添加回答
举报
0/150
提交
取消