Lua 模块 Shelve

lua-users home
wiki

shelve 是一个 Lua 模块,它可以将 Lua 值(数字、字符串、布尔值和表)透明地编码到文件中。每个存储的元素都可以通过一个键访问,因此您可以像对待普通的 Lua 表一样对待 shelve 文件。

快速提示

使用 `shelve.open()` 函数来创建或打开一个新的 shelve 文件,例如

data = shelve.open("my_data_file")

`data` 变量的行为类似于 Lua 表,因此您可以存储键值对并使用已知的 Lua 语法读取它们。

-- store some values
data.aNumber = 10
data.aString = "this is a string"
data.aTable  = 
  {
     "these", "are", "some", "strings", "contained",
     "in", "a", "nested", "table",
     nested = true,
     items  = 9
  }

-- retrieve values, and print them
print(data.aString)
print("items: " .. data.aTable)

for k,v in data.aTable do
  print(k,v)
end

如果您想知道 shelve 文件中存在哪些键,只需像调用函数一样调用它,它将返回一个与 shelve 文件具有相同键的表。

-- retrieve keys and print them
keys = data()
for key in keys do
  print(k)
end

或者

-- retrieve keys and print them
for key in data() do
  print(k)
end

要手动关闭 shelve 文件,只需将 `nil` 赋值给它,Lua 垃圾回收 将为您关闭它。只需将此行添加到上面的示例中即可关闭文件。

data = nil

作者

AdrianPerez

下载

目前仅提供源代码。**最新版本为 0.33**。0.33 之前的版本存在错误,因此强烈建议您更新到 0.33 或更高版本。

依赖

您需要 Lua 5.0 beta 或更高版本,以及 Gdbm 或 Ndbm。推荐使用 Gdbm。当前版本已在 MacOS X 10.2 (Jaguar) 和 Linux 上测试。


最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2009 年 10 月 31 日 下午 11:12 GMT (差异)