在Go中实现range

huangapple go评论78阅读模式
英文:

Implement range in Go

问题

我有一个 type List []string,我正在实现一些标准函数,比如 InsertDeleteAt 等等。我想要实现 range,这样我就可以轻松地遍历列表了。但是我找不到实现的方法。

英文:

I have a type List []string and I am implementing some standard functions like Insert, DeleteAt etc. I would like to implement range so I can iterate the list easily.
I cannot seem to find the way to do that.

答案1

得分: 7

没有理由重新实现range,因为range关键字可以在List类型上工作。

var l List
for i, v := range l {
    /* 无论如何 */
}
英文:

There is no reason to re-implement range since the range keyword will work on type List.

var l List
for i, v := range l {
    /* whatever */
}

答案2

得分: 2

在Go语言中,不可能为给定的类型自己实现range功能。range只适用于Go语言的内置数据结构:切片、映射和通道(以及数组?)。

英文:

It is not possible in Go to implement range yourself for a given type. Range only works for Go's built-in data structures: slices, maps and channels (and arrays?).

huangapple
  • 本文由 发表于 2012年9月18日 11:22:57
  • 转载请务必保留本文链接:https://go.coder-hub.com/12469961.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定