代码如下
package main
type ObjForGroupBy interface {
GetValueForGroupBy() string
}
func GroupBy(data []ObjForGroupBy) map[string][]ObjForGroupBy {
var result = make(map[string][]ObjForGroupBy)
for _, obj := range data {
strV := obj.GetValueForGroupBy()
result[strV] = append(result[strV], obj)
}
return result
}
type Course struct {
Day string
}
func (c Course) GetValueForGroupBy() string {
return c.Day
}
func main() {
var courses []Course
courses = append(courses, Course{Day: "Monday"})
GroupBy(courses)
}
报错为
cannot use courses (variable of type []Course) as type []ObjForGroupBy in argument to GroupBy
搞的我有点懵,是我理解错了 interface 吗?传单数 ObjForGroupBy 的函数,可以正常用,传 slice 就不行。来个朋友指点一下
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.