结构是
type TopicModels struct {
Topics []string
}
我想将值设置为此结构,如下面的方法
var topics [2]string
topics[0] = "Sport Nice"
topics[1] = "Nice Sport"
return &TopicModels{Topics: topics}, nil
然而,它告诉我
cannot use topics (type [2]string) as type []string in field value
如何更改代码以使其正确?
答案 0 :(得分:3)
如错误消息所示,Topics
字段的类型为[]string
(字符串的任意长度片段),topics
变量的类型为[2]string
(字符串)数组长度2)。这些类型不同,因此您会收到错误。
有两种方法可以解决这个问题:
使topics
成为切片:
topics = make([]string, 2)
topics[0] = "Sport Nice"
...
使用slice expression创建代表数组的切片:
...
return &TopicModels{Topics: topics[:]}, nil
答案 1 :(得分:1)
您也可以使用array literal
执行此操作...
topics := [2]string{"Sport Nice","Nice Sport"}
return &TopicModels{Topics: topics}, nil
这是关于数组和切片的一个很好的博客文章... http://blog.golang.org/go-slices-usage-and-internals
编辑
忘了提你需要改变结构
type TopicModels struct {
Topics [2]string
}