【发布时间】:2018-02-28 14:52:17
【问题描述】:
我在 Golang 中工作,正在尝试使用接口来组合一组使用类似方法的结构。简而言之,我有这个:
type Person interface {
BasicInfo() MemberBasicInfo
}
type MemberBasicInfo struct {
ID uint
MemberFirstName string
MemberNickname string
MemberEmail string
}
然后,应该作为接口工作的结构:
func (member *Member) BasicInfo() MemberBasicInfo{
return MemberBasicInfo{
ID: member.ID,
...other mapping here...
}
}
func (user *User) BasicInfo() MemberBasicInfo{
return MemberBasicInfo{
ID: uint(user.ID),
...other mapping here...
}
}
cannot use memberData (type Member) as type Member.Person in return argument: Member does not implement Person (BasicInfo method has pointer receiver)
cannot use memberData (type User) as type Person in return argument: User does not implement Person (BasicInfo method has pointer receiver)
我错过了什么?还是我做错了什么?
【问题讨论】:
-
生成此编译器消息的代码在哪里?
标签: go