lua基础语法

ops/2024/9/28 16:26:48/

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/ops/117747.html

相关文章

【Pytorch】大语言模型中的CrossEntropyLoss

文章目录 前言什么是CrossEntropyLoss语言模型中的CrossEntropyLoss计算loss的前期准备CrossEntropyLoss的输入CrossEntropyLoss的输出 额外说明 前言 在大语言模型时代&#xff0c;我们常常使用交叉熵损失函数来计算loss&#xff0c;因此&#xff0c;理解该loss的计算流程有助…

蓝桥杯【物联网】零基础到国奖之路:九. I2C

蓝桥杯【物联网】零基础到国奖之路:九. I2C 第一节 I2C概念第二节 I2C的物理层第三节 I2C的协议层 第一节 I2C概念 中文叫集成电路总线&#xff0c;是一种串行通信总线&#xff0c;使用多主从架构&#xff0c;由飞利浦公司1980年代初设计&#xff0c;方便主板、嵌入式系统或手…

python的函数

python中的函数 函数参数不可变对象参数可变对象参数参数调用的几种方法 *表示隔开关键字参数匿名函数函数的返回return强制位置参数错误写法正确写法 函数 函数是组织好的一组代码块&#xff0c;可以实现单一或关联功能的代码段。函数也可以提高应用的模块性以及代码的重复利…

【高分系列卫星简介】

高分系列卫星是中国国家高分辨率对地观测系统&#xff08;简称“高分工程”&#xff09;的重要组成部分&#xff0c;旨在提供全球范围内的高分辨率遥感数据&#xff0c;广泛应用于环境监测、灾害应急、城市规划、农业估产等多个领域。以下是对高分系列卫星及其数据、相关参数和…

✨机器学习笔记(五)—— 神经网络,前向传播,TensorFlow

Course2-Week1: https://github.com/kaieye/2022-Machine-Learning-Specialization/tree/main/Advanced%20Learning%20Algorithms/week1机器学习笔记&#xff08;五&#xff09; 1️⃣神经网络&#xff08;Neural Network&#xff09;2️⃣前向传播&#xff08;Forward propaga…

trixbox call php发起电话呼叫

调用方法&#xff1a; asterisk 命令行 OK originate sip/801 extension 802 originate sip/802 extension 9013816338277default good bye挂断 originate sip/802 extension 9013816338277from-internal OK Asterisk Call Manager (AMI)呼叫可以 http://xxxx/voip/c…

C++ Mean Shift算法

原理 每个样本点最终会移动到核概率密度的峰值&#xff0c;移动到相同峰值的样本点属于同一种颜色 关键代码 template <typename PointType> inline typename MeanShift<PointType>::PointsVector MeanShift<PointType>::meanshift(const PointsVector &am…

使用Hutool-poi封装Apache POI进行Excel的上传与下载

介绍 Hutool-poi是针对Apache POI的封装&#xff0c;因此需要用户自行引入POI库,Hutool默认不引入。到目前为止&#xff0c;Hutool-poi支持&#xff1a; Excel文件&#xff08;xls, xlsx&#xff09;的读取&#xff08;ExcelReader&#xff09;Excel文件&#xff08;xls&…