传奇广告查询第一站 同步54.com

学习Lua脚本语言
原创 于2026-01-05 18:07:00发布
9 阅读
0
0

一、运行方式

Lua脚本的后缀名为 .lua。
运行该文件的代码时,只需在命令行键入 lua xx.lua 即可。

二、语法

1、数据类型

Lua 中包含 8 种基本数据类型,即:nil、boolean、number、string、userdata、function、thread 和 table。

数据类型说明
nil无效值,在条件表达式中表示 false
boolean布尔值,包含 true 和 false 两个值
number表示双精度类型的实浮点数
string表示字符串,通过双引号或单引号括住
userdata任意存储在变量中的 C 数据结构
function表示 C 或 Lua 编写的函数
thread执行的独立线程,用于执行协同程序
table一个关联数组,数组索引可以是数字或字符串
a=10 str = "hello world" 

不需要声明变量类型,我们可以通过 type() 判断变量类型。

注意:

Lua 变量有三种类型:全局变量、局部变量和表中的域;

默认情况下,不管在哪声明的变量都是全局变量。通过 local 修饰的变量为局部变量;

变量默认值为 nil。

2 运算符

  1. 赋值运算符
str="hello".."world" -- 通过 .. 连接字符串 a,b=10,15 -- a=10,b=15 c,d,e=1,2 -- c=1,b=2,e=nil 
  1. 逻辑运算符
print(true and false) -- 与 print(true or false) -- 或 print(not true) -- 非 
  1. 其他运算符
操作符操作符
. .连接两个字符串
#返回字符串或表的长度,如 #“lua”

3 流程控制

-- if 语句 if(true) then print("hello") end -- if .. else 语句 a,b=10,15 if(a>b) then print(a) else print(b) end -- if 嵌套 c=20 if(c>10) then if(c<30) then print(c) end end 
  1. 循环,有 4 种写法
while 循环 在条件为 true 时,让程序重复执行语句。 for 循环 重复执行指定语句,重复次数在 for 中控制。可以遍历数字和泛型。 repeat .. until 重复执行循环,直到指定条件为真为止。 循环嵌套 循环内嵌套多个循环语句。 -- while 循环 a=10 while(a>0) do print(a) a=a-1 end -- for 循环,遍历数字 for a=1,10,1 do print(a) end -- repeat .. until 循环 a=10 repeat print(a) a=a-1 until(a<1) 
  1. 数组
    Lua 数组大小不固定且下标从 1 开始。
arr={"h","e","l","l","o"} -- 此处使用遍历数字方式 for index=1,#arr do print(arr[index]) end -- 此处使用遍历泛型方式 for i,v in ipairs(arr) do print(i,v) end 

4)函数

-- 案例 1 function calc(a,b,c) return a+b+c end result=calc(1,2,3) print(result) -- 案例 2 function getCalc(a,b,c) return a,b,c end r1,r2,r3=getCalc(1,2,3) print(r1,r2,r3) 

Lua 中的函数允许返回多个值。
5)table
table 是 Lua 中的一个数据结构,类似于 Java 中的 Map 类型或 Javascript 中的 JSON 对象。
Lua table 使用关联数组,我们可以使用任意类型值作为数组的索引,但不能是 nil。
Lua table 大小不固定。

person={} person.name="jack" person.age=20 print(person[1]) print(person.name) print(person["age"]) 

6)模块和包
模块类似于一个封装库。从 Lua 5.1 开始,Lua 加入标准的模块管理机制,可以将一些公用的代码放在一个文件中,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合。
Lua 的模块由变量、函数等已知元素组成的 table 。
例如:
创建名为 module.lua 的文件。

module={} module.index=1 function module.sum(a,b) return a+b end 

另一个文件引入:

-- 此处 module 是文件名 require "module" -- 此处 module 是引入模块中定义的名称 print(module.index) print(module.sum(1,2)) 
管理员
0
0
0
分享
上一篇: 传奇服务器config 文件怎么设置,91M2引擎如何加载和保存自定义的配置文件
下一篇: 传奇引擎在服务器上无响应,如何解决传奇3服务器在运营过程中出现假死情况...
评论
历史记录
回顶部
浏览时间 游戏名称 游戏IP 开区网址
注册GM1论坛账号
  • 上传头像
注册

已有账号,

微信扫码登录
重置密码
重置密码

注册

绑定关联手机号
关联手机号