lua基础语法

server/2024/9/30 0:08:35/

Lua 是一种轻量级的脚本语言,它以其简洁和灵活性而闻名。以下是 Lua 基础语法的一些关键点:

1. 变量声明

Lua 中的变量声明需要使用 local 关键字,表示变量的作用域仅限于当前区块。

local x = 10  -- 局部变量
x = 20        -- 全局变量(如果没有使用 local 关键字)

2. 数据类型

Lua 支持多种数据类型,包括数字、字符串、布尔值、表(table,类似于数组和字典的结合体)、函数、线程和 userdata。

local number = 123                -- 数字
local string = "Hello, Lua!"       -- 字符串
local boolean = true              -- 布尔值
local table = {key = "value"}     -- 表
local function func() end          -- 函数
-- 线程和 userdata 在基础语法中较少使用

3. 算术运算

Lua 支持基本的算术运算符。

local sum = 5 + 3
local difference = 5 - 3
local product = 5 * 3
local quotient = 5 / 3
local remainder = 5 % 3

4. 条件语句

if 语句用于条件判断。

local number = 10
if number > 5 thenprint("Greater than 5")
elseif number < 5 thenprint("Less than 5")
elseprint("Equal to 5")
end

5. 循环

Lua 支持 whilerepeat-until 循环。

local i = 0
while i < 5 doprint(i)i = i + 1
endi = 0
repeatprint(i)i = i + 1
until i > 5

6. 表(Tables)

表是 Lua 中最强大的数据结构,可以用作数组、字典或多维数组。

local list = {10, 20, 30, 40, 50}
local dictionary = {name = "Lua", version = "5.4"}-- 访问表
print(list[1])  -- 输出:10
print(dictionary.name)  -- 输出:Lua-- 遍历表
for i, v in ipairs(list) doprint(i, v)
endfor k, v in pairs(dictionary) doprint(k, v)
end

7. 函数

在 Lua 中定义函数使用 function 关键字。

function greet(name)print("Hello, " .. name .. "!")
endgreet("Lua")  -- 输出:Hello, Lua!

8. 字符串

Lua 中的字符串可以使用单引号或双引号。

local singleQuoted = 'Hello, Lua!'
local doubleQuoted = "Hello, Lua!"
print(singleQuoted)  -- 输出:Hello, Lua!
print(doubleQuoted)  -- 输出:Hello, Lua!

9. 模块

Lua 使用模块来组织代码,模块可以定义全局变量和函数。

local myModule = {}function myModule.add(a, b)return a + b
endreturn myModule

10. 错误处理

Lua 使用 pcallxpcall 来捕获和处理错误。

local status, err = pcall(function()error("something bad happened")
end)if not status thenprint("Error: " .. err)
end

http://www.ppmy.cn/server/124715.html

相关文章

uniapp 动态修改input样式

最近在用HBuilderx工具开发蓝牙调试工具&#xff0c;项目采用uniapp、vue3.0架构&#xff0c;需求设计为在向蓝牙模块发送数据之前&#xff0c;监测input是否为空&#xff0c;如果为空&#xff0c;则input边框橙红色。界面如下图所示&#xff1a; uniapp架构采用 .vue格式文件&…

uniapp路由跳转

一、uni.navigateTo(object) 保留当前页面&#xff0c;跳转到指定非tabBar页面&#xff0c;如&#xff1a; uni.navigateTo({url:/pages/demo1/demo1, }) 二、uni.redirectTo(object) 关闭当前页面&#xff0c;跳转到指定非tabBar页面&#xff0c;如&#xff1a; uni.redi…

19 基于51单片机的倒计时音乐播放系统设计

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 五个按键&#xff0c;分别为启动按键&#xff0c;则LCD1602显示倒计时&#xff0c;音乐播放 设置按键&#xff0c;可以设置倒计时的分秒&#xff0c;然后加减按键&#xff0c;还有最后一个暂停音乐…

CICD从无到会

一 CICD是什么 CI/CD 是指持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;或持续交付&#xff08;Continuous Delivery&#xff09; 1.1 持续集成&#xff08;Continuous Integration&#xff09; 持续集成是…

大模型+AIGC技术实操:GPT 大模型部署使用 AIGC实战落地方案

一、GPT大模型简介 GPT是基于Transformer架构的预训练语言模型&#xff0c;通过大规模的无监督学习&#xff0c;它已展现出了惊人的文本生成和理解能力。部署GPT大模型意味着将其融入到实际应用中&#xff0c;如智能写作、客服对话、内容推荐等领域。 二、GPT大模型部署步骤 …

Redisearch 入门指南构建高性能搜索应用

1. 概述 Redisearch 是一个强大的全文搜索引擎&#xff0c;基于流行的 Redis 数据库构建&#xff0c;专为高效的数据检索而设计。它结合了 Redis 的快速存储能力和搜索引擎的复杂查询功能&#xff0c;使得开发者能够在海量数据中实现实时搜索体验。Redisearch 支持丰富的特性&…

web前端与koa框架node后端实现分片断点上传

web前端,先选择文件,然后点击上传 html代码如下: <div><input type="file" /><el-button @click="uploadFile()" type="primary">上传</el-button> </div> 上传代码如下 其实也就是每次传50mb,如果网络突然…

【前端】ES7:ES7新特性

文章目录 1 求幂运算符2 数组的includes方法 1 求幂运算符 Math.pow(3, 2) 3 ** 2 // trueconsole.log(3 ** 3) // 272 数组的includes方法 如果仅仅查找数据是否在数组中&#xff0c;建议使用includes&#xff0c;如果是查找数据的索引位置&#xff0c;建议使用indexOf更好…