Lua基础

本文介绍了Lua语言的特点,包括易嵌入、简单、轻量、易学习和高性能。详细解释了Lua的命名规范、类型与值,以及如何通过type()函数检测变量类型。并提供了Lua基础类型的具体例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Lua介绍

Lua是一种小巧的脚本语言,作者是巴西人。Lua的所有代码都是由标准的ANSI C编写而成,代码简洁优美,只要是在支持ANSI C的系统上都能够完美的运行。

Lua有如下特点

(1)易嵌入,可以很方便地与C/C++编写的游戏逻辑互相调用;
(2)简单,不涉及任何复杂的编程概念;
(3)轻量,库体积很小,只有几百千子节;
(4)易学习,游戏策划人员也可以使用Lua;
(5)高性能,相对于C/C++原生语言,Lua解析带来的性能损失可以忽略不计。

Lua语法

1.命名规范
Lua中的标志符可以由任意字母组合、数字和下划线构成,不能以数字和下划线打头,并且大小写铭感。

注意:标识符不能使用Lua关键字
Lua包含的关键字如下:

and         break        do        else        elseif
true        false        for       function    if
in          local        nil       not         or
repeat      return       then      end         until
while

2.类型与值
Lua是一种动态类型语言,在语言中没有定义类型的语法,每个值本身就包含了类型信息。
Lua中有8种基础类型

1)nil      // 空2)boolean  // 布尔类型3number   // 数字4string   // 字符串5function // 函数6)table    // 表7)userdata // 自定义数据类型8)thread   // 线程

在Lua中可以使用函数type()来检测一个变量的类型。

local var = nil;
print(type(var));       // 输出为:nil

var = 520;
print(type(true));      // 输出为:number

var = "Hello World";
print(type(var));       // 输出为:string

var = print();
print(type(var));       // 输出为:function

var = {};
print(type(var));       // 输出为:table

nil
在Lua中nil表示的是一种类型,它只包含一个值nil。任何变量在没有赋值之前都是nil。当给一个全局变量赋值为nil,表示删除该变量。

boolean
boolean有两个值:truefalse,在Lua中只有falsenil表示假,其他情况都为真,数字0也为真。

number
在Lua中,number类型表示实数,不论是浮点数还是整数都是number类型

a = 10;
b = 5.20;
c = 5e20;

string
在Lua中,字符串表示的是一个字符序列。里面可以包含任意字符,都是用单引号或者双引号括起来的部分

str = "I'm is a string!";

*当需要两个字符串时,可以使用字符串连接操作符

print("Hello".."World!");

*当需要获取字符串的长度时,使用”#”能获取字符串的总长度

a = "Hello World!";
print(#a);
### Lua基础语法概述 Lua 是一种轻量级脚本语言,具有简单而强大的特性。以下是关于 Lua 的基本语法介绍: #### 变量与数据类型 Lua 支持八种原生数据类型[^2],其中包括四种简单的变量类型(`nil`, `number`, `string`, 和 `boolean`),以及四种复杂的变量类型(`table`, `function`, `thread`, 和 `userdata`)。 - **Nil**: 表示无值的状态。 - **Number**: 用于表示整数和浮点数。 - **String**: 字符串可以通过双引号或单引号定义。 - **Boolean**: 包含两个值:`true` 和 `false`。 例如: ```lua a = nil -- Nil 类型 b = 10 -- Number 类型 c = "Hello" -- String 类型 d = true -- Boolean 类型 ``` #### 关键字 Lua 中的关键字列表如下[^3],这些关键字不能被用作变量名或其他标识符名称: - `and`, `break`, `do`, `else`, `elseif`, `end`, `false`, `for`, `function`, `if`, `in`, `local`, `nil`, `not`, `or`, `repeat`, `return`, `then`, `true`, `until`, `while`, `goto`. #### 字符串操作 字符串的操作是 Lua 编程中的重要部分之一。通过内置的 `string` 库可以实现各种字符串处理功能。例如,使用 `string.sub()` 函数可以从指定位置提取子字符串[^1]。 代码示例: ```lua print(string.sub("Hello Lua", 4, 7)) --> 输出 'lo Lu' print(string.sub("Hello Lua", 2)) --> 输出 'ello Lua' print(string.sub("Hello Lua", -3, -1)) --> 输出 'ua' ``` #### 函数定义 函数在 Lua 中既可以作为普通的语句块存在,也可以作为一个表达式的返回值。匿名函数通常用于回调或者闭包场景中[^4]。 示例代码展示如何创建并调用带参数的函数: ```lua -- 定义一个加法器函数 function add(a, b) return a + b end result = add(5, 3) -- 调用该函数并将结果赋给 result print(result) --> 输出 8 ``` 对于更高级的应用场合,则可能涉及嵌套函数甚至闭包结构的设计思路。下面是一个利用闭包特性的实例演示: ```lua function createCounter(startValue) local count = startValue or 0 -- 初始化计数值,默认为零 return function() count = count + 1 -- 更新内部状态 return count -- 返回当前计数值 end end counterA = createCounter(10) -- 创建基于初始值 10 的计数器 A print(counterA()) --> 输出 11 print(counterA()) --> 输出 12 ``` --- #### 控制流语句 控制流程主要包括条件判断 (`if`)、循环迭代(`for`, `while`)等逻辑构建单元。这里给出几个典型片段供参考学习: ##### 条件分支 ```lua value = 5 if value > 0 then print("Positive number") --> 当 value>0 执行此条目 elseif value == 0 then print("Zero") else print("Negative number") end ``` ##### 循环遍历 ```lua for i=1,5 do -- 数值范围内的固定次数执行动作 print(i) end --> 分别输出 1 到 5 i = 1 -- 使用 while 实现相同效果 while i <= 5 do print(i) i = i + 1 -- 自增操作不可遗漏 end ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值