lua 数据类型
8 种数据类型
类型 | 说明 |
---|---|
nil | 空类型 |
boolean | 布尔类型 |
number | 数值型, 浮点型 |
string | 字符串 |
function | 函数 |
userdata | 用户自定义结构 |
thread | 协程 |
table | 表 |
测试类型 (type 函数)
#!/usr/bin/lua
print(type(nil)) -- nil
print(type(true)) -- boolean
print(type(3.14)) -- number
print(type("hello world")) -- string
print(type(type)) -- function
print(type({1, 2})) -- table
各类型说明
-
nil
空类型, 没有任何值, 与 false 不同
对于全局变量和 table, nil 还有 "删除" 功能, 为全局变量或 table 中的变量赋值为 nil, 即删除了此变量, 示例程序
tab = {k1 = "v1", k2 = "v2", "v3"} for k, v in pairs(tab) do
print(k .. "---" .. v)
end tab.k1 = nil
print("nil after") for k, v in pairs(tab) do
print(k .. "---" .. v)
end -
boolean
true | false
-
number
lua 的数值类型仅有一种 number 类型, 并不区分整型和浮点型
-
string
字符串由一对双引号或单引号表示
大块的字符串也可以用 "[[ 字符串 ]]" 表示
字符串连接操作符是 ".."
print("hello" .. "world")
计算字符串长度的操作符是 "#", 放在字符串前面
print(#"hello")
-
function
函数定义关键词是 "function"
-
userdata
用户自定义的结构体
thread
-
table
lua 中表的概念类似于其他语言的数组
lua 中表的索引默认从 1 开始