文章目录
Lua脚本快速入门
Lua 区分大小写
前提
本机安装好Lua,Lua安装步骤Google即可
基础
注释
-- 这是单行注释
-- [[
这是多行注释
这是多行注释
-- ]]
保留关键字
变量
变量未声明、未初始化时的类型
变量未声明、声明未初始化的时候默认值均为nil
局部变量
变量使用local 关键字修饰,如
-- 这是本地变量
local a = 10
function max()
-- 这也是本地变量
local a = 10
end
全局变量
没有local关键字的即为全局变量,如
-- 这是全局变量
a = 10
注意:即使是在函数内的变量,只要没有local关键字修饰,也是全局变量
function max()
a = 10
end
全局变量保存在哪?
保存在一个table表中,有关_G的一些说明
全局变量不删除有哪些影响?
目前在官方文档以及书籍中没有看到有关全局变量不删除有哪些影响。而且书籍中也提出说,使用者无需关心Lua的内存,Lua的内存管理是自动的
全局变量如何删除?
将nil赋值给全局变量即可
a = 10
-- 删除全局变量
a = nil
多个变量初始化
多个变量初始化基本格式为:多个变量依次在等号左边,对应的值依次在等号右边
local a, b = 10, 20
当右边的值的个数少于左边变量的个数,则未找到对应值得变量为lua中的默认值nil
a, b = 10
当右边的值的个数多于左边变量的个数,则多于的值会被自动忽略
a, b = 10, 20, 30
数据类型
判断一个变量是什么类型使用type
type(123)
-
nil 空
nil做比较时应该加上引号
type(X) == 'nil'
-
boolean
-
number 双精度的浮点数
-
string 单引号或双引号
使用#来计算字符串长度
local string str = 'message' print("字符串长度为:", #str)
拼接字符串的另外一种常见写法
local msg1 = 'msg1' print(msg1 .. 'append' .. 'builder')
注意 这种写法字符串只能是局部变量
字符串常用操作文档,包括查找、大小写转换、截取、拼接 等
-
function
Lua的函数可以返回多个值,每个值之间用逗号隔开
function max() a, b = 10, 20 return a, b end -- 调用函数 max()
函数声明之后要进行调用
-
table
还有其他几个类型,没有列出,是因为目前工作中暂时用不到
条件表达式
if
local a, b = 10, 10
if (a == b) then
print("if表达式")
end
if else
local a = 10
if (a == c) then
else
print("if-else表达式")
end
if elseif嵌套
local a, b = 10, 10
if (a == c) then
elseif (a == d) then
elseif(a ==b ) then
print("if-elseif表达式")
end
数组
数组声明
array = {'index1', 'index3'}
循环
while循环
a = 10
while (a < 20) do
a = a+1
if (a > 18) then
break
end
print("value of a:", a)
end
for循环
for i = 10, 1, -1 do
print("value of i:", i)
end
和数组结合使用,使用内置的ipairs函数
local array = {'jack', 'tom', 'bob'}
for k, v in ipairs(array) do
print("本次循环打印value:", v)
print('本次循环打印key:', k)
end
repeat…until循环
repeat相当于do-while,无论如何,起码都会执行一次循环
b = 10
repeat
b = b+1
print("value of b:", b)
until(b > 15)
错误处理
目前这一部分实际上并没有进行处理过
Lua脚本中调用Redis
使用redis.call,redis.开头的相关命令文档
local rc, rl, ll, key, value = redis.call, redis.log, redis.LOG_NOTICE, KEYS[1], ARGV[1]
local result = rc("SETEX", key, 60, value)
print("result value is:", result)
函数库
Lua内置函数快速查询
在官方文档最下面的类库列表中可以快速找到不认识、不了解的函数,以及官方教程中列出的Lua标准库
资源
示例代码
本文示例代码
文档
IDEA插件
- EmmyLua,建议安装该插件,可以很方便的进行Lua的语法提示,以及debug调试