文章更新于:2020-05-13
注:Lua 参考手册:https://amnot.lanzous.com/ickqlwb
Windows 安装将下载的文件解压之后,路径配置环境变量即可使用。
and |
break |
do |
else |
elseif |
end |
false |
for |
function |
if |
in |
local |
nil |
not |
or |
repeat |
return |
then |
true |
until |
while |
判断 |
if |
a = 3
if a == 3 then
print("a = 3")
end
# a = 3
判断 |
if else |
a = 3
if a == 3 then
print("a = 3")
else
print("a != 3")
# a = 3
判断 |
if else if |
a = 4
if a == 3 then
print("a = 3")
else if a == 4 then
print("a = 4")
else
print("a != 3 and a != 4")
# a = 4
循环 |
while |
sum = 0
i = 1
while(i <= 100) do
sum = sum + i
i = i + 1
end
print(sum)
# 5050
循环 |
for |
sum = 0
for i = 1, 100 do
sum = sum + i
end
print(sum)
# 5050
循环 |
repeat |
sum = 0
i = 1
repeat
sum = sum + i
i = i + 1
until(i > 100)
print(sum)
# 5050
循环 |
break |
while(true) do
print("true")
break
end
# true
nil |
boolean |
number |
string |
function |
userdata |
thread |
table |
数据类型 | 描述 |
---|---|
nil |
无效值,相当于 Null |
boolean |
布尔值,只有 true 和 false 两种 |
number |
双精度类型的实浮点数 |
string |
字符串类型,需要双引号或单引号括起来 |
function |
函数类型 |
userdata |
表示任意存储在变量中的 C 数据结构 |
thread |
用于执行协同程序独立线路 |
table |
表(table),唯一的数据结构。可以借此创造出各种类型,比如数组和字典 |
hello,world
"hello,world"
[[hello,world]]
函数 | 描述 |
---|---|
string.upper(argument) |
全部转换为大写 |
string.lower(argument) |
全部转换为小写 |
string.gsub(mainString, findString, replaceString, num) |
替换字符串 |
string.strfind(str, substr,[init,[end]]) |
查找字符串 |
string.reverse(argument) |
翻转字符串 |
string.format(...) |
格式化输出字符串 |
string.char(argument) |
将 ascii 数字转换为字符 |
string.byte(argument, [,int]) |
将 ascii 字符转换为数字 |
string.len(argument) |
计算字符串长度 |
string.rep(string, n) |
重复 n 次字符串 |
.. |
连接两个字符串 |
数组,就是相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数组。
声明一个一维数组:
array = {"Lua", "Tutorial"}
lua 数组索引默认从 1 开始,
不过你可以指定从 0 开始,也可以从负数开始。
声明一个二维数组:
-- 初始化数组
array = {}
for i=1,3 do
array[i] = {}
for j=1,3 do
array[i][j] = i*j
end
end
-- 访问数组
for i=1,3 do
for j=1,3 do
print(array[i][j])
end
end
使用行列数计算索引键防止出现 nil
-- 初始化数组
array = {}
maxRows = 3
maxColumns = 3
for row=1,maxRows do
for col=1,maxColumns do
array[row*maxColumns +col] = row*col
end
end
-- 访问数组
for row=1,maxRows do
for col=1,maxColumns do
print(array[row*maxColumns +col])
print('index is: ',row*maxColumns +col)
end
end
在Lua中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素。
泛型 for 在自己内部保存迭代函数,实际上它保存三个值:迭代函数、状态常量、控制变量。
演示示例:
array = {"Lua", "Tutorial"}
for key,value in ipairs(array)
do
print(key, value)
end
# 1 Lua
# 2 Tutorial
支持的数据库有:ODBC, ADO, Oracle, MySQL, SQLite 和 PostgreSQL。