1
我获得性LevelDB的所有关键-VAL到地图[字符串] []字节,但它没有运行作为我的厚望。 代码是如下golang性LevelDB得到快照错误
package main
import (
"fmt"
"strconv"
"github.com/syndtr/goleveldb/leveldb"
)
func main() {
db, err := leveldb.OpenFile("db", nil)
if err != nil {
panic(err)
}
defer db.Close()
for i := 0; i < 10; i++ {
err := db.Put([]byte("key"+strconv.Itoa(i)), []byte("value"+strconv.Itoa(i)), nil)
if err != nil {
panic(err)
}
}
snap, err := db.GetSnapshot()
if err != nil {
panic(err)
}
if snap == nil {
panic("snap shot is nil")
}
data := make(map[string][]byte)
iter := snap.NewIterator(nil, nil)
for iter.Next() {
Key := iter.Key()
Value := iter.Value()
data[string(Key)] = Value
}
iter.Release()
if iter.Error() != nil {
panic(iter.Error())
}
for k, v := range data {
fmt.Println(string(k) + ":" + string(v))
}
}
但结果是下面 KEY3:value9 键6:value9 KEY7:value9 key8:value9 KEY1:value9 KEY2:value9 KEY4:value9 KEY5:value9 key9:value9 key0:value9 而不是key0:value0
非常感谢您的回答,它works.But为什么值改变了吗?有点困惑。 –