实现切片的接口

在玩 Go 时,我遇到了一个问题:是否可以为切片实现接口?我无法在任何地方找到答案。我尝试了以下操作但没有成功:


type t1 struct {

    prop string

}


type i1 interface {

    toString() string

}


//ok

func (o t1) toString() {

    return o.prop

}


// ERROR invalid receiver []i1 (basic or unnamed type)compiler(InvalidRecv)

func (o []i1) toString() {

}


// ERROR invalid receiver []t1 (basic or unnamed type)compiler(InvalidRecv)

func (o []t1) toString() {

}


翻阅古今
浏览 82回答 1
1回答

一只甜甜圈

不能为切片定义方法。您可以从切片中定义新类型,并为其定义一个方法:type t1Slice []t1func (o t1Slice) toString() {}然后你可以做:var arr []t1t1Slice(arr).toString()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go