为了账号安全,请及时绑定邮箱和手机立即绑定

具有切片结构的隐式类型

具有切片结构的隐式类型

Go
30秒到达战场 2022-07-04 16:23:34
如果我有这样的文件:package mainimport "fmt"type Language struct {   Example []string   Link []string}func main() {   o := Language{      {".go", "go.ps1"},      {"golang.org", "go.dev"},   }   fmt.Println(o)}我得到这个结果:missing type in composite literal我发现我可以这样解决:[]string{".go", "go.ps1"},[]string{"golang.org", "go.dev"},但这是严格要求的吗?我认为 Go 会根据struct定义知道每个属性的类型。
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

这里的问题不是编译器不知道类型,而是复合文字的语法需要类型:

https://golang.org/ref/spec#Composite_literals

字符串数组文字是[]string{"a","b",","c"},不是{"a","b","c"}


查看完整回答
反对 回复 2022-07-04
?
慕村225694

TA贡献1880条经验 获得超4个赞

您需要结构定义中的字段,如下所示


o := Language{

    Example: []string{".go", "go.ps1"},

    Link:    []string{"golang.org", "go.dev"},

}

fmt.Println(o)


查看完整回答
反对 回复 2022-07-04
  • 2 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信