如何使用 Golang 函数处理具有自定义迭代器的自定义数据结构
在 Golang 中,可以使用内置函数 func() 创建自定义函数,并用自定义迭代器来处理自定义数据结构。以下是如何实现的步骤:
1. 定义自定义数据结构:
type MyDataStructure struct {
values []int
}
2. 实现自定义迭代器:
立即学习“go语言免费学习笔记(深入)”;
type MyIterator struct {
data MyDataStructure
index int
}
func (myIterator *MyIterator) Next() (int, bool) {
if myIterator.index < len(myIterator.data.values) {
value := myIterator.data.values[myIterator.index]
myIterator.index++
return value, true
}
return 0, false
}
3. 定义处理自定义数据结构的函数:
func ProcessMyDataStructure(data MyDataStructure) {
myIterator := MyIterator{data: data}
for value, ok := myIterator.Next(); ok; value, ok = myIterator.Next() {
// 在此处处理数据
}
}
实战案例:
package main
import "fmt"
type MyDataStructure struct {
values []int
}
type MyIterator struct {
data MyDataStructure
index int
}
func (myIterator *MyIterator) Next() (int, bool) {
if myIterator.index < len(myIterator.data.values) {
value := myIterator.data.values[myIterator.index]
myIterator.index++
return value, true
}
return 0, false
}
func ProcessMyDataStructure(data MyDataStructure) {
myIterator := MyIterator{data: data}
for value, ok := myIterator.Next(); ok; value, ok = myIterator.Next() {
fmt.Println(value)
}
}
func main() {
data := MyDataStructure{values: []int{1, 2, 3, 4, 5}}
ProcessMyDataStructure(data)
}
输出:
1
2
3
4
5