当前位置: 首页 > article >正文

lua基础语法

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 then
    print("Greater than 5")
elseif number < 5 then
    print("Less than 5")
else
    print("Equal to 5")
end

5. 循环

Lua 支持 whilerepeat-until 循环。

local i = 0
while i < 5 do
    print(i)
    i = i + 1
end

i = 0
repeat
    print(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) do
    print(i, v)
end

for k, v in pairs(dictionary) do
    print(k, v)
end

7. 函数

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

function greet(name)
    print("Hello, " .. name .. "!")
end

greet("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
end

return myModule

10. 错误处理

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

local status, err = pcall(function()
    error("something bad happened")
end)

if not status then
    print("Error: " .. err)
end

http://www.kler.cn/a/324672.html

相关文章:

  • Android加载pdf
  • GoogleCloud服务器的SSH连接配置
  • 【Android、IOS、Flutter、鸿蒙、ReactNative 】启动页
  • 分布式微服务项目,同一个controller不同方法间的转发导致cookie丢失,报错null pointer异常
  • spark 设置hive.exec.max.dynamic.partition不生效
  • EXCEL 或 WPS 列下划线转驼峰
  • 【可测试性实践】C++ 单元测试代码覆盖率统计入门
  • 探索 LangChain: 架构、组件和应用
  • 【CSS in Depth 2 精译_039】6.3 CSS 定位技术之:相对定位(上)
  • WPF一个控件根据另一个控件的某种状态的改变从而改变自身某种状态
  • 机械键盘驱动调光DIY--【DAREU】
  • Makefile编程:4种赋值差异
  • Python爬虫lxml模块安装导入和xpath基本语法
  • 计算机毕业设计 校运会管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • ssm模糊知识点整合
  • Java | Leetcode Java题解之第442题数组中重复的数据
  • 滚雪球学MySQL[3.1讲]: 高级SQL查询
  • leetcode_015_三数之和解析
  • Python集成测试详解
  • 工业边缘计算网关和普通网关的区别-天拓四方
  • python基础语法--顺序结构
  • SpringCloud源码:客户端分析(一)- SpringBootApplication注解类加载流程
  • 工业缺陷检测——Windows 10本地部署AnomalyGPT工业缺陷检测大模型
  • naocs注册中心,配置管理,openfeign在idea中实现模块间的调用,getway的使用
  • Python爬虫bs4的基本使用
  • Android平台如何获取CPU占用率和电池电量信息