1. 轻量小巧的脚本语言。
2. 设计目的是嵌入应用程序提供灵活的扩展及定制功能。
3. Lua优势在于能够很方便的与其他程序进行集成。(C++、C#、Java ...)
1. Lua几乎可以在所有平台和操作系统中编译运行;而C#只能在特定的操作系统中进行编译生成dll(动态链接库)文件,进而再打 包成相应安装包在其他的平台(iOS、Android ...)上运行。
2. Lua更新代码特别方便,且更新后就直接能在手机上面运行(热更新);C#则需要重新下载安装包(移动平台不能更新代替原来 的dll文件)。
1. 输出
print("Hello World!")
2. 注释
(1)单行注释
--
(2)多行注释
--[[
多行注释
--]]
3. 标识符
Lua 标示符用于定义一个变量,函数获取其他用户定义的项。标示符以一个字母 A 到 Z 或 a 到 z 或下划线 _ 开头后加上0个或多个字母,下划线,数字(0到9)。最好不要使用下划线加大写字母的标示符,因为(比如 _VERSION)被保留用于 Lua 内部全局变量。
Lua 不允许使用特殊字符如 @, $, 和 % 来定义标示符且Lua是区分大小写的编程语言。
4. 全局变量
默认声明的变量就是全局变量。
5. 数据类型
Lua 中有 八 个基本类型分别为nil、boolean、number、string、userdata、function、thread 及table。
//type()函数返回变量或值的类型
print(type("Hello world")) --> string
print(type(10.4*3)) --> number
(1)nil 数据类型
nil 类型表示一种没有任何有效值,只有一个值 nil。(例如打印一个没有赋值的变量就会输出一个 nil 值)
> print(type(a))
nil
>
(2)boolean(布尔)
boolean 类型只有两个可选值:true(真) 和 false(假),Lua 把 false 和 nil 看作是"假",其他的都为"真"。
(3)number(数字)
Lua 默认只有一种 number 类型 是double双精度类型。
(4)string(字符串)
字符串由一对双引号或单引号来表示。或者可以用 2 个方括号 "[[ ]]" 来表示多行的字符串。
html = [[
菜鸟教程
]]
print(html)
注意:【1】对一个数字字符串上进行算术操作时,Lua 会尝试将这个数字字符串转成一个数字。
【2】用 # 来计算字符串的长度,放在字符串前面。
> len = "www.runoob.com"
> print(#len)
14
【3】字符串的连接用 ..
> print("a" .. 'b')
ab
(5)table(表)
【1】table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。
-- 创建一个空的 table
local tbl1 = {}
-- 直接初始表
local tbl2 = {"apple", "pear", "orange", "grape"}
【2】Lua 里表的默认初始索引一般以 1 开始。
--遍历表
local tbl = {"apple", "pear", "orange", "grape"}
for key, val in pairs(tbl) do
print("Key", key)
end
输出结果:
Key 1
Key 2
Key 3
Key 4
【3】 table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil。
ms1 = {}
for i = 1, 10 do
ms1[i] = i
end
ms1["key"] = "val"
print(ms1["key"])
print(ms1["none"])
输出结果:val nil