0404: 遍历表
模仿 KV.Seek(),增加 DB.Seek() 函数和迭代器:
// 返回首个 >= 主键的位置
func (db *DB) Seek(schema *Schema, row Row) (*RowIterator, error)
// 遍历是否结束?
func (iter *RowIterator) Valid() bool { return iter.valid }
// 当前 row
func (iter *RowIterator) Row() Row { return iter.row }
// 移动
func (iter *RowIterator) Next() error
func (iter *RowIterator) Prev() error
type RowIterator struct {
schema *Schema
iter *KVIterator
valid bool // 反序列化结果
row Row // 反序列化结果
}其实就是把 KV 包装了一层。
您正在阅读免费版教程,从第4章起只有简单的指引,适合爱好挑战和自学的读者。
可以购买有详细指导+背景知识的完整版。