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爲什麼值改變了嗎?有點困惑。 –