📜  lua 类型 - Lua (1)

📅  最后修改于: 2023-12-03 15:02:48.725000             🧑  作者: Mango

Lua数据类型

Lua 是一种动态脚本语言,拥有 8 种基本数据类型,其中 7 种是值类型,1 种是引用类型。本文将介绍这些 Lua 数据类型以及它们的用法。

1. nil 类型

nil 类型表示一个无效值,通常表示“没有值”。在 Lua 中,任何变量都可以是 nil 类型,如果变量没有被赋予一个合法的值,那么它的默认值就是 nil。

local a
print(type(a))  -- 输出:nil
2. boolean 类型

boolean 类型表示真(true)或假(false)的值。

local b = true
print(type(b))      -- 输出:boolean
print(b)             -- 输出:true
3. number 类型

number 类型表示数字类型的值,包括整数和浮点数。

local c = 100     -- 整数
print(type(c))    -- 输出:number
local d = 3.14    -- 浮点数
print(type(d))    -- 输出:number
4. string 类型

string 类型表示字符串类型的值,用双引号或单引号包围起来。

local e = "hello"   -- 双引号
print(type(e))      -- 输出:string
local f = 'world'   -- 单引号
print(type(f))      -- 输出:string
5. function 类型

function 类型表示函数类型的值,可以通过 function 关键字定义。

local function add(a, b)
    return a + b
end
print(type(add))    -- 输出:function
6. table 类型

table 类型是 Lua 中最重要的数据结构,可以用来构建数组、字典等。

local g = {1, 2, 3}    -- 数组
print(type(g))         -- 输出:table
local h = {name="Tom", age=18}    -- 字典
print(h.name)          -- 输出:Tom
7. thread 类型

thread 类型表示独立的执行流,常用在异步编程中。我们可以使用 coroutine 库来创建、管理线程。

local co = coroutine.create(function()
    print("Hello, world!")
end)
print(type(co))   -- 输出:thread
coroutine.resume(co)   -- 输出:Hello, world!
8. userdata 类型

userdata 类型表示自定义类型的值,通常用于扩展 Lua 的功能。

local file = io.open("test.txt", "r")
print(type(file))    -- 输出:userdata

总结

本文简要介绍了 Lua 的 8 种数据类型。在实际开发中,不同的数据类型具有不同的用途,我们可以根据需要选择合适的类型。