脚本宝典收集整理的这篇文章主要介绍了Lua教程(八):数据持久化,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
1. 数据文件:
我们可以利用Lua中table的构造式来定义一种文件格式,即文件中的数据是table构造并初始化的代码,这种方式对于Lua程序而言是非常方便和清晰的,如:
--输出结果为:
--number of entries: 2
相比于上面数据文件的格式,我们还可以定义一种更为清晰的“自描述的数据”格式,其中每项数据都伴随一个表示其含义的简短描述。采用这样的格式,即便今后数据项发生了变化,我们仍然可以在改动极小的情况下保持向后的兼容性。见如下数据格式和相关的代码:
dofile("d:/lua_data.conf")
for name in pairs(personInfo) do
print(name)
end
--输出结果为:
--Jerry Tian
--stephen Liu
可以看出这些代码片段都采用了事件驱动的做法。Entry函数作为一个回调函数,在执行dofile时为数据文件中的每个条目所调用。
Lua不仅运行速度快,而且编译速度也快。这主要是因为Lua在设计之初就将数据描述作为Lua的主要应用之一所致。
2. 序列化:
相信有Java或C#开发经验的人对于这一术语并不陌生。就是将数据对象转换为字节流后在通过IO输出到文件或网络,读取的时候再将这些数据重新构造为与原始对象具有相同值的新对象。或者我们也可以将一段可执行的Lua代码作为序列化后的数据格式。比如:VARname = <expr>,这里的<expr>表示计算变量varname的表达式。下面的示例代码用于序列化无环的table:
以上是脚本宝典为你收集整理的Lua教程(八):数据持久化全部内容,希望文章能够帮你解决Lua教程(八):数据持久化所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。