我了解 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`, }, }我明白這一點(diǎn):testCases := map[string]struct但接下來(lái)的內(nèi)容對(duì)我來(lái)說(shuō)毫無(wú)意義。代碼如何自己定義一個(gè) api.Pod、corev1.ResourceName 等?那不是struct定義的字符串嗎?
2 回答
侃侃爾雅
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
testCasesstring是一個(gè)帶有匿名類型鍵和值的映射:
struct {
pod *api.Pod
required []corev1.ResourceName
err string
}
是pod指向類型值api.Pod(也是結(jié)構(gòu))的指針,required是具有類型元素的切片corev1.ResourceName,并且err是字符串。
因此testCases映射將包含許多指向具有上述結(jié)構(gòu)的結(jié)構(gòu)的字符串。
慕神8447489
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
接下來(lái)是某種“匿名”結(jié)構(gòu)。
它將等同于:
testCases := map[string]StructName
如果您指定了如下結(jié)構(gòu):
type StructName struct {
pod *api.Pod
required []corev1.ResourceName
err string
}
- 2 回答
- 0 關(guān)注
- 202 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
