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循环
while(循环条件)
do
业务代码;
对循环条件的控制;
end

在这里插入图片描述

for循环
数值for循环:

for var=exp1,exp2,exp3 do
循环体
end
var的值,从exp1一直到exp2,步长是exp3(是可选的,默认是1)
在这里插入图片描述
在这里插入图片描述

泛型for循环:

是通过迭代器进行的。
在这里插入图片描述

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

在这里插入图片描述

流程控制

if()
在这里插入图片描述
0 是 true。

函数

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

函数的范围(local ,缺省)

function 函数名称(参数列表)
函数体;
return 结果
end
多值返回

lua中索引是从1开始的
在这里插入图片描述

可变参数

平均数
在这里插入图片描述
如何确定可变参数的数量
用#
在这里插入图片描述

运算符

算术运算符
+ 加
- 减
* 乘
/ 除
% 取余
^ 乘幂
- 负号
关系运算符
== 等于。
~=不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
逻辑运算符
and 
or
not
其他运算符
.. 连接符
# 计算字符串或者 表 的长度。

数组

数组:相同元素的集合。
索引用整数表示:从1开始。

迭代器

泛型 for 迭代器

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迭代器的结构:

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

table

a = {key1=“a”,key2=“b”}
不能用nil做索引。

模块

模块的定义
从lua5.1开始,引入了模块机制,把一些公用的代码放到文件中,通过api的方式,让其他程序调用,这个文件,就是一个模块。
类似于java中的jar包。
lua中的模块,其实是一个table(由 变量、函数等已知的 lua元素组成)。最好在模块的结尾,需要返回一个table。

如何编写模块
在这里插入图片描述

require函数(使用模块)

require(“模块名”)
require “模块名”
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lua 是一种轻量级的脚本语言,它具有简洁、高效、易于扩展等特点。Lua 可以被嵌入到 C/C++ 应用程序中,也可以作为独立的解释器运行。下面简单介绍一下 Lua 脚本的基本语法和用法。 ## 1. 基本语法 Lua 语言的基本语法与众多编程语言类似。下面是一个简单的 Lua 脚本示例: ```lua -- 定义变量 a = 10 b = 20 -- 条件语句 if a < b then print("a is less than b") else print("a is greater than or equal to b") end -- 循环语句 for i = 1, 10 do print(i) end -- 函数定义 function add(a, b) return a + b end -- 函数调用 sum = add(a, b) print("sum =", sum) ``` ## 2. 常用函数 Lua 中内置了一些常用的函数,比如字符串处理函数、数学函数、文件操作函数等。下面是一些常用函数的示例: ```lua -- 字符串处理函数 str = "hello world" print(string.upper(str)) -- 将字符串转换为大写 print(string.sub(str, 1, 5)) -- 截取字符串 -- 数学函数 print(math.pow(2, 3)) -- 求幂 print(math.sqrt(16)) -- 求平方根 -- 文件操作函数 file = io.open("test.txt", "w") file:write("Hello World") file:close() file = io.open("test.txt", "r") print(file:read("*all")) file:close() ``` ## 3. Lua 与 C/C++ 的交互 Lua 可以被嵌入到 C/C++ 应用程序中,实现 Lua 脚本与 C/C++ 代码的交互。在 C/C++ 中,可以使用 Lua API 调用 Lua 脚本中的函数、读写变量等。下面是一个简单的示例: ```c #include "lua.hpp" int main() { lua_State* L = luaL_newstate(); luaL_openlibs(L); luaL_dofile(L, "test.lua"); // 执行 Lua 脚本 lua_getglobal(L, "add"); // 获取 Lua 函数 lua_pushnumber(L, 10); // 压入参数 lua_pushnumber(L, 20); lua_call(L, 2, 1); // 调用函数,2 表示有两个参数,1 表示有一个返回值 double result = lua_tonumber(L, -1); // 获取返回值 printf("result = %lf\n", result); lua_close(L); return 0; } ``` 上面的示例中,C/C++ 代码使用 Lua API 调用了 Lua 脚本中的 add 函数,并获取了该函数的返回值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值