Go语言中如何正确为结构体赋值切片类型的映射?
Go语言结构体中切片类型映射的正确赋值方式
你的代码存在两个语法问题,导致编译报错:
- 结构体初始化字段末尾缺少逗号:Go语言规定,当结构体初始化的字段采用分行书写形式时,每个字段(包括最后一个)的末尾都必须添加逗号,这是Go的语法要求,用于避免换行带来的语法歧义。
- map中切片值的字面量未显式声明类型:在map字面量中,直接使用
{"value1", "value2"}无法被编译器正确识别为切片类型,必须显式声明为[]string{"value1", "value2"}。
修正后的代码如下:
package main import ( "fmt" ) type Test struct { name string testCase map[string][]string } var t = Test{ name: "myTest", testCase: map[string][]string{"key": []string{"value1", "value2"}}, } func main() { fmt.Println(t) }
运行这段代码即可正常输出结构体内容。
内容的提问来源于stack exchange,提问作者royskatt
相关产品推荐
相关产品推荐

