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

覆盖任意类型

覆盖任意类型

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 关注
  • 224 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号