OpenResty完全开发指南:构建百万级别并发的Web应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.3 数据类型

Lua语言提供六种基本的数据类型:

    ■  nil        :表示不存在的空对象或无效值,类似Python的None;
    ■  boolean    :布尔类型,取值为true或false;
    ■  number     :数字类型,不区分整数和浮点数;
    ■  string     :字符串类型,参见3.4节;
    ■  function   :函数类型,参见3.8节;
    ■  table      :表类型,非常灵活的数据结构,参见3.9节。

注:这是Lua 5.1和5.2的语法,Lua 5.3引入了整数类型,并支持了位运算。

使用函数type()可以测试变量的类型,它以字符串的形式返回类型的名字,例如:

print(type(nil))                 -- nil
print(type(true))                -- boolean
print(type(42))                  -- number
print(type(2.718))               -- number
print(type("metroid"))           -- string
print(type(print))               -- function(print是Lua标准库里的一个函数)
print(type(table))               -- table(table是Lua标准库里的一个表)

虽然变量是有类型的,但因为Lua是动态语言,所以声明变量并不需要显式地写出类型,变量也可以存储任意类型的值:

x = 2018                          -- 变量的类型是number
x = "lua"                         -- 变量的类型变为string
x = nil                           -- 变量的类型变为nil