You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
465 B
27 lines
465 B
2 years ago
|
package dorm
|
||
3 years ago
|
|
||
|
type Iterator struct {
|
||
|
data []interface{}
|
||
|
index int
|
||
|
}
|
||
|
|
||
3 years ago
|
// NewIterator 构造函数
|
||
3 years ago
|
func NewIterator(data []interface{}) *Iterator {
|
||
|
return &Iterator{data: data}
|
||
|
}
|
||
3 years ago
|
|
||
|
// HasNext 是否有下一个
|
||
3 years ago
|
func (i *Iterator) HasNext() bool {
|
||
|
if i.data == nil || len(i.data) == 0 {
|
||
|
return false
|
||
|
}
|
||
|
return i.index < len(i.data)
|
||
|
}
|
||
|
|
||
3 years ago
|
// Next 循环下一个
|
||
3 years ago
|
func (i *Iterator) Next() (Ret interface{}) {
|
||
|
Ret = i.data[i.index]
|
||
|
i.index = i.index + 1
|
||
|
return
|
||
|
}
|