代码如下
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 就不行。来个朋友指点一下