英文:
Implement range in Go
问题
我有一个 type List []string
,我正在实现一些标准函数,比如 Insert
、DeleteAt
等等。我想要实现 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?).
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论