Lua脚本

基本语法

注释

print("script lua win")

-- 单行注释

-- [[

多行注释

]] --

标识符

类似于:java当中 变量、属性名、方法名。

以字母(a-z,A-Z)、下划线 开头,后面加上0个或多个 字母、下划线、数字。

不要用下划线+大写字母,保留字。总结,按照正常思维命名即可。

全局变量

数据类型

nil

没有任何有效值,就是一个 nil。

删除的作用。全局变量和table。
类似于null

type表示数据类型

boolean

false(false\nil都是false), true(其他都为true,包括0)。

number

双精度(8个字节)。

String

字符串用单引号或双引号来表示。

用 [[可以换行的字符串 ]]

字符串和数字进行数学运算,优先将 字符串 转 成 数字。

字符串连接

计算字符串长度

table

类比成java中的数组,map,链表,队列等。

... 是字符串拼接使用的

function

阶乘:

匿名函数:

变量

先声明,后使用。

三种类型:全局变量(默认),局部变量(作用范围:从声明开始,到所在的语句块结束),表中的域

局部变量 local

变量赋值

索引

对table中元素的访问。

tab["key"]

tab.key

循环

用途:做一些有规律的重复操作。

循环体:一组被重复执行的语句。循环条件:判断能否继续循环

while循环

lua 复制代码
while(循环条件)
do
业务代码;
对循环条件的控制;
end

for循环

数值for循环:

for var=exp1,exp2,exp3 do

循环体

end

var的值,从exp1一直到exp2,步长是exp3(是可选的,默认是1)

泛型for循环:

是通过迭代器进行的。

repeat until

lua 复制代码
repeat
循环体
until(条件)
先执行循环体,直到满足条件。如果条件为false,继续执行循环体,如果条件为true,则跳出循
环。

流程控制

if()

0 是 true。

函数

函数定义

功能:1。完成指定的任务。2。计算并返回值(可以返回多个值)。例如:print()

函数的范围(local ,缺省)

lua 复制代码
function 函数名称(参数列表)
函数体;
return 结果
end

多值返回

lua中索引是从1开始的

可变参数

平均数

如何确定可变参数的数量

用#

运算符

算术运算符

+ 加
- 减
* 乘
/ 除
% 取余
^ 乘幂
- 负号

关系运算符

== 等于。
~=不等于
> 大于
< 小于
>= 大于等于
<= 小于等于

逻辑运算符

and 
or
not
其他运算符
.. 连接符
# 计算字符串或者 表 的长度。

数组

数组:相同元素的集合。

索引用整数表示:从1开始。

迭代器

泛型 for 迭代器

lua 复制代码
a = {"a","b","c"}
for k,v in pairs(a)
do
 print(k,v)
end
print('----------------')
a = {"a","b","c"}
for k,v in ipairs(a)
do
 print(k,v)
end

pairs会遍历所有key和值。

ipairs:只会从1开始,步长是1,中间不是数字作为key的元素会被忽略,一直到第一个不连续的数字索引为止(不含)。适合遍历数组。

for迭代器的结构:

lua 复制代码
for 变量列表 in 迭代函数 ,状态常量,控制变量
do
循环体
end

table

a = {key1="a",key2="b"}

不能用nil做索引。

模块

模块的定义

从lua5.1开始,引入了模块机制,把一些公用的代码放到文件中,通过api的方式,让其他程序调用,这个文件,就是一个模块。

类似于java中的jar包。

lua中的模块,其实是一个table(由 变量、函数等已知的 lua元素组成)。最好在模块的结尾,需要返回一个table。

如何编写模块

require函数(使用模块)

require("模块名")

require "模块名"

相关推荐
小珑也要变强28 分钟前
队列基础概念
c语言·开发语言·数据结构·物联网
AI原吾3 小时前
掌握Python-uinput:打造你的输入设备控制大师
开发语言·python·apython-uinput
机器视觉知识推荐、就业指导3 小时前
Qt/C++事件过滤器与控件响应重写的使用、场景的不同
开发语言·数据库·c++·qt
毕设木哥3 小时前
25届计算机专业毕设选题推荐-基于python的二手电子设备交易平台【源码+文档+讲解】
开发语言·python·计算机·django·毕业设计·课程设计·毕设
珞瑜·3 小时前
Matlab R2024B软件安装教程
开发语言·matlab
weixin_455446173 小时前
Python学习的主要知识框架
开发语言·python·学习
孤寂大仙v3 小时前
【C++】STL----list常见用法
开发语言·c++·list
她似晚风般温柔7894 小时前
Uniapp + Vue3 + Vite +Uview + Pinia 分商家实现购物车功能(最新附源码保姆级)
开发语言·javascript·uni-app
咩咩大主教4 小时前
C++基于select和epoll的TCP服务器
linux·服务器·c语言·开发语言·c++·tcp/ip·io多路复用
FuLLovers4 小时前
2024-09-13 冯诺依曼体系结构 OS管理 进程
linux·开发语言