1. 什么是lua
1993年在巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人组成的研究小组开发完成了最初版本的lua。
被发明出来以后,也在不断地更新迭代,最新版本已经更新到了lua 5.4,
其主要的版本如下所示:
2018~2024 - lua 5.4
2014~2017 - lua 5.3
2010~2013 - lua 5.2
2004~2009 - lua 5.1
2003 - lua 5.0
2000 - lua 4.0
1997 - lua 3.0
1995 - lua 2.2
1993 - lua 1.0
Lua 是一种轻量级的脚本语言,它的设计初衷是作为嵌入式语言和扩展语言使用,它的强大之处在于其能够轻松地与其他语言、库和系统集成,并通过扩展模块来实现更丰富的功能。
在实际应用中,Lua 经常被集成到其他应用程序中,用于实现脚本化、插件化以及热更新等功能。在 Unity 游戏引擎中,Lua 被广泛应用于实现热更新功能,并且衍生出了多个变种和扩展,例如 xLua 和 tolua 等。
这些扩展不仅仅是为了增强 Lua 的功能和性能,同时也为开发者提供了更灵活和高效的开发选项,使得 Lua 在游戏开发以及其他需要动态扩展和快速迭代的领域中成为一个强大的选择。
2. lua的获取
1. 到lua的官网下载原码编译
2. 下载lua的编译后二进制版本,只有库文件和exe文件,可以从以下链接下载
LuaBinaries - Browse /5.4.2 at SourceForge.net
3. lua安装包
安装后自动将.lua和.wlua文件打开方式的设置,动态库,静态库,头文件,exe文件,示例lua代码,SciTE编辑器等等,比较丰富,比较推荐这个方式获取lua,可以从以下链接下载安装包
https://github.com/rjpcomputing/luaforwindows/tree/master
3. 基础的lua脚本示例
1.输出和注释
--这是一条单行注释
--[[
这是一条多行注释,
]]
print("Hello World")
print(type("Hello World")) --type()获取变量的类型
2.基础数据类型
--没有定义的变量,也可以直接使用,它的值和类型都是nil
print(type(aa)) --nil
--bool类型
bb = true
print(type(bb)) --boolean
--在lua中字符串也可以包含转义字符,类型为string
cc = "hello world\n"
print(type(cc)) --string
--可以使用使用[[和]]来使用定义多行文本,原文件中的换行会自动转为\n, 不需要手动添加\n
cc2 = [[
this is a multi line string \n
all characters contained by \]\]
]]
print(cc2)
print(type(cc2))
--lua 中没有整形和浮点数的区别,所有数字类型都是number
dd = 1.1
print(type(dd)) --number
--lua中的table比较复杂,可以像数组使用(下标从1开始),也可以像python字典使用,
ee = {} -- index start from 1
print(type(ee)) --table
print(#cc) -- #stringVariable 可以获取字符串的长度
print(cc.."some ting after hello world") -- 使用 .. 来连接字符串
--使用tonumber("") 实现string->number
ff="123.2"
print(tonumber(ff)+1.0) --124.2
--使用tostring() 实现其它格式->string
gg=123
print("tostring:"..tostring(gg)) --tostring:123
4. 参考
https://www.lua.org/
https://www.runoob.com/lua/lua-tutorial.html
https://www.runoob.com/manual/lua53doc/manual.html