课时 2 · 数据类型与变量
课时 2 · 数据类型与变量(Lua 语言基础):掌握 8 种数据类型与变量作用域。含可运行的示例代码、练习与验收要点,示例锁定 Lua 5.1,可在站内在线运行验证。
本课的代码可以就地复制;点代码块右上角的「运行这段」, 会带着这段代码打开 Lua 在线运行器 并直接跑出结果 (课程示例统一按 5.1 跑;运行器里也能切到 5.3)。
本课的代码跑在 996 引擎里,用到的是服务端接口(changeexp、 SetInt 这类),在线运行器里没有这些函数。 每个函数的签名都能在 文档检索 里按名字查到原文。
本课目标
- 掌握 8 种数据类型与变量作用域。
知识讲解
Lua 有 8 种基本类型:nil、boolean、number、string、table、function、userdata、thread。nil 表示「没有值」;boolean 为 true/false;number 统一表示整数与浮点数;string 是字符串;table 是唯一的复合数据结构;function 是函数;userdata 对应宿主语言对象(引擎中的控件、玩家对象等常以 userdata 形式出现);thread 是协程。
变量默认是全局的,使用 local 声明局部变量。局部变量作用域限于所在代码块,性能更好、不易污染全局命名空间。type() 函数返回值的类型字符串。
示例:类型与变量
local name = '战士' -- 字符串
local hp = 100 -- 数字
local alive = true -- 布尔
local nothing = nil -- 空
print(type(name), type(hp), type(alive), type(nothing))
-- 输出: string number boolean nil
练习任务
- 声明 8 种类型的变量各一个,用 type() 逐个打印类型清单并观察结果。
参考:验收要点
- 8 个 type() 输出依次为 nil/boolean/number/string/
- table/function/userdata/thread;
- 未赋值的变量输出 nil;
- 函数类型可写成 local f = function() end,
- 协程类型可写成 local c = coroutine.create(function() end)。
本篇依据
- 《996 新三端 Lua 开发教学技术手册》课时 2
参数与取值以你本机版本的官方帮助文档为准,不同版本之间有过调整。