如何解决带切片结构的隐式类型
如果我有这样的文件:
package main
import "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",[]string{"golang.org",
但这是严格要求的吗?我认为Go会知道每种类型
属性根据struct
定义。
解决方法
这里的问题不是编译器不知道类型,而是复合文字的语法要求类型:
https://golang.org/ref/spec#Composite_literals
字符串数组文字是[]string{"a","b",","c"}
,而不是{"a","c"}
。
您需要像这样的结构定义中的字段
o := Language{
Example: []string{".go","go.ps1"},Link: []string{"golang.org","go.dev"},}
fmt.Println(o)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。