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章起只有简单的指引,适合爱好挑战和自学的读者。
可以购买有详细指导+背景知识的完整版