在玩 Go 时,我遇到了一个问题:是否可以为切片实现接口?我无法在任何地方找到答案。我尝试了以下操作但没有成功:type t1 struct { prop string}type i1 interface { toString() string}//okfunc (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() {}
1 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
不能为切片定义方法。您可以从切片中定义新类型,并为其定义一个方法:
type t1Slice []t1
func (o t1Slice) toString() {
}
然后你可以做:
var arr []t1
t1Slice(arr).toString()
- 1 回答
- 0 关注
- 81 浏览
添加回答
举报
0/150
提交
取消