什么是lua?

什么是lua?,第1张

先讲讲我知道的一些应用。

首手镇先是在i OS下写游戏,《愤怒小鸟》就是用lua写的;同时,也好多用其它语言在为Iphone写游戏的程序员,添加lua到游戏开发中去,胡薯基让过程更简单。当然,Lua最著名的应用是在暴雪公司的网络游戏《魔兽世界》中----在网上可以找到好多用lua做的wow小工具。

然后是一些小的程序,这个和我的目标一致,一些简单的测试用例可以用lua来写,比如可以在百度找得到的‘康泰串口裤谨程序’,还在百度文库发现一篇,有在用lua开发测量仪器上位机测试程序的例子(好处是用c写完一些固定的调用后,用lua简单配置一下,又是另外一个测试程序,写完就可以用)。

Unified Configuration Interface

讲点其它细节。

lua是动态语言,它的解释器现在有用各种主流语言完成的各种版本,c、java...应有尽有。你的程序需要做config吗?lua应该是个不错的选择。或者,找现成的lua解释器过来,你可以再添加好你的库,完全直接执行脚本也行。

有人把它和python作比较,可能是应用领域的关系,那个家伙讲,他觉得lua会比python好用。在lua的官网可以看到他们吹水记录,不贴连接了。

网上下的某PPT里这么讲,Lua最引人注目的特点:

--以极小 的体积和简单 的语法提供相对全面的功能。

--以简洁 的API实现与宿主语言最方便 的接口。

Lua 没有打算被用来进行大型的程序设计,相反,Lua 定位于中小型程序设计,通常是作为大型系统的一部分,常用于一个或少数程序员开发的情况,甚至是由非程序员进行的开发。所以,Lua 避免了过分的冗余和过多的人为限制。如果你不希望一个对象的内部结构被访问,那么就不要去访问它们。

最近在写 Lua 脚本,需要读取二进制文件并转化为十六进制的字符串,C语言读文件,返回的是字符串类型,Lua 返回的也蠢雀稿是字符串类型(用的时候忘记去查类型了,导致这个地方浪费了很长的时间。。。),由于找解决方法找了蛮长时间的,所有在这里先记录一下。

local function readAll(filePath)

--

local f = assert(io.open(filePath, "rb"))

local content = f:read("*all")

f:close()

return content

end

local function bytesToHexStr(filePath)

--

local content = readAll(filePath)

local result = ""

local len = string.len(content)

for i = 1, len do

local charcode = tonumber(string.byte(content, i, i))

local hexstr = string.format("%02X", charcode)

result = result .. hexstr

end

return result

end

有一个小问题,顺便记录一下,在读取了二进制文件后,本想用print打印看看内容有没有被读出来,结果只打印了一部分,岁明用 notepad++ 打开发带孝现,文件有很多 NUL 的字符,原因是 print 在遇到 NUL 就结束打印了,囧o(╯□╰)o

十六进制转二进制可以参考这个: Lua小程序:十六进制字符串和二进制数据间的转换


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12523871.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存