range
有没有办法在 Go中制作任意类型?例如,Python 提供了__iter__()
,它非常有用。我尝试寻找答案,但没有得到任何结果。
问问题
89 次
2 回答
3
您已成功搜索,Go 中不支持任意类型的范围。
从规格:
RangeClause = ( ExpressionList "=" | IdentifierList ":=" ) "range" Expression .
“range”子句右侧的表达式称为范围表达式,它可以是数组、指向数组的指针、切片、字符串、映射或允许接收操作的通道。
于 2013-07-24T11:56:19.577 回答
2
您可以使用通道来模拟它。类似的东西
func (t *SomeType) Range() chan *Item {
// setup a channel and a go routine that sends the items from t
}
for item := range t.Range()
...
于 2013-07-25T22:00:24.587 回答