写在前面的话:Lua是一个脚本语言,嵌入别的语言中。详细的介绍大家自己百度一下Lua

  1. 值与类型
    Lua 是一种 动态类型语言。这意味着变量没有类型,只有值才有类型。语言中不存在类型定义。而所有的值本身携带它们自己的类型信息。
    Lua 中的所有值都是一致 (first-class) 的。这意味着所有的值都可以被放在变量里,当作参数传递到另一个函数中,并被函数作为结果返回。
    八种基本类型: nil, boolean, number, string, function, userdata, thread, and table. Nil 类型只有一种值 nil; Boolean 类型只有两种值:false 和 true; nil 和 false 都能导致条件为假, 其他为真(这与Java等语言的区别在于0上)。
    Lua 可以调用(和处理)用 Lua 写的函数以及用 C 写的函数。
    userdata 类型用来将任意 C 数据保存在 Lua 变量中。
    thread 类型用来区别独立的执行线程,它被用来实现 coroutine (协同例程)。不要把 Lua 线程跟操作系统的线程搞混。 Lua 可以在所有的系统上提供对 coroutine 的支持,即使系统并不支持线程。
    table 类型实现了一个关联数组。也就是说,数组可以用任何东西(除了nil)做索引,而不限于数字。 table 可以以不同类型的值构成;它可以包含所有的类型的值(除 nil 外)。 table 是 lua 中唯一的一种数据结构;它可以用来描述原始的数组、符号表、集合、记录、图、树、等等。
    table, function ,thread ,和 (full) userdata 这些类型的值是所谓的对象
  2. 语句
    Chunk(语句组):Lua 的一个执行单元。通俗点说就是一串语句段。每个语句段可以以一个分号结束。不允许出现空的语句段,像;;这样就是非法的。
    语句块:从语法上来说,一个语句块跟一个 chunk 相同. 可以使用do…end来显示的定义一个语句块。
    赋值 : test1 = "value1"; --简单的赋值语句
    Lua支持多重赋值,例如test2, test3 = "value2", "value3"; --等号左边放一系列变量,而等号右边放一系列的表达式
    控制结构
    if — if exp then block elseif exp then block else block end
    while — while exp do block end
    repeat — repeat block until exp
    For 语句 — for varname = var1, var2, var3 do block end , 这里介绍的是最基本的for循环语法,其中 var1表示起始数,var2表示结束数,var3表示步长,若var3省略,表示步长为1, varname表示的是当前循环的数
    局部变量 : 以local关键字申明,注:全局变量不需要关键字,直接申明
    函数调用 : 与java等主流函数调用类似,如:
-- 定义一个函数
function fn1() 
    print("test"); 
end
-- 调用函数
fn1();

当然函数的调用还有别的高阶用法,可以自行百度。

  1. 表达式
  2. 函数
  3. 再论函数
  4. 迭代器
  5. 异常处理
    function、closure和upvalue