3
有沒有辦法在Go中創建任意類型的range
?例如,Python提供了__iter__()
,這非常有用。我試圖尋找答案,但沒有結果。任意類型的範圍
有沒有辦法在Go中創建任意類型的range
?例如,Python提供了__iter__()
,這非常有用。我試圖尋找答案,但沒有結果。任意類型的範圍
你已經搜索成功,沒有支持圍繞任意類型的Go。
從specs:
RangeClause = (ExpressionList "=" | IdentifierList ":=") "range" Expression .
被稱爲範圍表達的「範圍」子句中右邊的表達,這可能是一個數組,指向數組的指針,切片,字符串,地圖或允許接收操作的頻道。
您可以使用通道來模擬它。東西沿線
func (t *SomeType) Range() chan *Item {
// setup a channel and a go routine that sends the items from t
}
for item := range t.Range()
...