作者Nt1 (用功点吧!)
看板Programming
标题[问题] Golang的interface
时间Fri Jan 12 18:52:37 2018
小弟刚从Python转Golang,有些关念还不是很清楚,请大家指教一下。
我有一个 Interface,定义两个 method 如下:
type Content interface{
GetContent(filters map[string]string) (Content, error)
GetContents(filters map[string]string) ([]*Content, int64, error)
}
然後实做 struct 如下
type MyContent struct {
TypeA blablabla
TypeB blablabla
}
func (t *MyContent) GetContent(filters map[string]string) (
item Content, err error) {
item = &MyContent{}
// do something, 这个function 可以work
}
# 这个function可以work,可以透过实做 interface 来达到我想要的功能
func (t *MyContent) GetContents(filters map[string]string) (
items []*Content, total int64, err error) {
err = nil
items = []&MyContent{}
#^^^^^^^^^^^^^^^^^^^^^ 死在这行
#cannot use []MyContent literal (type []MyContent) as type []*Content in
#assignment
但第二个function一直出现错误,请问我该怎麽解呢?感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 211.22.61.74
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1515754360.A.FE6.html
1F:推 s25g5d4: []*MyContent{} 36.225.19.49 01/12 20:13
2F:→ Nt1: 试过了,一样orz 感谢 123.192.211.62 01/12 20:31
3F:推 tommady: 因为您的return要的是Content,但宣告是M 42.115.102.87 01/12 22:01
4F:→ tommady: yContent 42.115.102.87 01/12 22:01
5F:推 tommady: 您把*Content换成Content,因为interface 42.115.102.87 01/13 00:15
6F:→ tommady: 是没指标的 42.115.102.87 01/13 00:15