前言
Lua是动态类型语言,变量不要类型定义,只需要为变量赋值。
- 全局变量
全局变量
在默认情况下,变量总是认为是全局的。
- 全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过得到的结果是:nil。
- 当且仅当一个变量不等于nil时,这个变量即存在。
Lua 数据类型
值可以存储在变量中,作为参数传递或结果返回。
Lua中有8个基本类型分别为:nil、boolean、number、string、userdata、function、thread和table。
nil 这个最简单,表示一个无效值(在条件表达式中相当于false)。 nil 还有一个"删除"作用
boolean 包含两个值:false和true。
number 表示双精度类型的实浮点数
string 字符串由一对双引号或单引号来表示
function 由 C 或 Lua 编写的函数
userdata 表示任意存储在变量中的C数据结构
thread 表示执行的独立线路,用于执行协同程序
table Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可以是数字或者是字符串。在 Lua 里,table 的创建是通过"构造表达式"来完成,最简单构造表达式是{},用来创建一个空表。
- 我们可以使用type函数测试给定变量或者值的类型:
print(type("Hello world")) --> string
- boolean(布尔)
boolean 类型只有两个可选值:true(真) 和 false(假),Lua 把 false 和 nil 看作是”假”,其他的都为”真”:
- string(字符串)
字符串由一对双引号或单引号来表示。
也可以用 2 个方括号 "[[]]" 来表示"一块"字符串
字符串连接使用的是 ..
使用 # 来计算字符串的长度,放在字符串前面
- table(表)
在 Lua 里表的默认初始索引一般以 1 开始。
local tbl = {"apple", "pear", "orange", "grape"}
for key, val in pairs(tbl) do
print("Key", key)
end
table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil。