覆盖任意类型

有没有办法range在 Go 中创建任意类型?例如,Python 提供了__iter__(),这真的很有用。我试图寻找答案,但没有得到任何结果。


LEATH
浏览 218回答 2
2回答

繁花不似锦

您已成功搜索,在 Go 中不支持覆盖任意类型。从规格:RangeClause = ( ExpressionList "=" | IdentifierList ":=" ) "range" Expression .“范围”子句中右侧的表达式称为范围表达式,它可以是数组、指向数组的指针、切片、字符串、映射或允许接收操作的通道。

幕布斯6054654

您可以使用通道来模拟它。类似的东西func (t *SomeType) Range() chan *Item {    // setup a channel and a go routine that sends the items from t}for item := range t.Range() ...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go