为了账号安全,请及时绑定邮箱和手机立即绑定

范围超过`type x []struct` 或`type y struct`?

范围超过`type x []struct` 或`type y struct`?

Go
噜噜哒 2021-09-10 21:25:24
似乎没有Ranger用于覆盖自定义类型的接口。有没有类似的?或者我是否必须制作一种将类型转换为切片或映射的方法?编辑:当然我可以将 x 转换为 []struct,但这会使更改 x 的基础类型变得更加困难。
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

循环的range变体for不能扩展到自定义集合,而不仅仅是重命名的切片、映射、字符串或通道。没有Ranger界面或类似的东西。如果您想覆盖自定义类型,请考虑使用这样的for-loop:


for x, eof := col.Next(); x, eof = col.Next(); !eof {

    // ...

}

whereNext()是一个方法,它使用这样的签名遍历您的集合:


func (*MyCollection) Next() (ItemType x, bool eof)


查看完整回答
反对 回复 2021-09-10
  • 1 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信