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

覆盖任意类型

覆盖任意类型

Go
LEATH 2021-06-15 13:08:29
有没有办法range在 Go 中创建任意类型?例如,Python 提供了__iter__(),这真的很有用。我试图寻找答案,但没有得到任何结果。
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

您已成功搜索,在 Go 中不支持覆盖任意类型。

规格

RangeClause = ( ExpressionList "=" | IdentifierList ":=" ) "range" Expression .

“范围”子句中右侧的表达式称为范围表达式,它可以是数组、指向数组的指针、切片、字符串、映射或允许接收操作的通道。


查看完整回答
反对 回复 2021-06-21
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您可以使用通道来模拟它。类似的东西


func (t *SomeType) Range() chan *Item {

    // setup a channel and a go routine that sends the items from t

}


for item := range t.Range() 

...


查看完整回答
反对 回复 2021-06-21
  • 2 回答
  • 0 关注
  • 217 浏览
慕课专栏
更多

添加回答

举报

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