课时 2 · 数据类型与变量

课时 2 · 数据类型与变量(Lua 语言基础):掌握 8 种数据类型与变量作用域。含可运行的示例代码、练习与验收要点,示例锁定 Lua 5.1,可在站内在线运行验证。

教程/第一部分 · Lua 语言基础更新于 2026-10-073 个小节 教程第 4 / 23 篇 Lua基础语法

本课的代码可以就地复制;点代码块右上角的「运行这段」, 会带着这段代码打开 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

参数与取值以你本机版本的官方帮助文档为准,不同版本之间有过调整。