跳到主要内容
JackSparrow414
返回

Lua脚本快速上手(附示例程序代码)

本文导航

展开本文导航

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)

还有其他几个类型,没有列出,是因为目前工作中暂时用不到

条件表达式

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插件


分享本文:

上一篇
Java EE体系快速入门示例
下一篇
JavaRMI入门和使用

评论

欢迎提问、纠错和分享经验。发表评论需要登录 GitHub;中英文版本共享评论。

评论仅在正式网站开放。