LUA的基础知识

前言

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。

相关推荐