美文网首页
Lua 语言学习教程

Lua 语言学习教程

作者: Mr_White | 来源:发表于2019-11-10 13:47 被阅读0次

    Lua 基本语法

    print("Hello World!")
    -- 单行注释
    
    --[[
    多行注释
    --]]
    
    ---[[
    print('取消多行注释')
    --]]
    
    --[ 定义变量 --]
    
    • 多行注释推荐使用 --[=[注释内容]=],这样可以避免遇到table[table[idx]]时就将多行注释结束了。
    • 最好不要使用下划线加大写字母的标示符,因为Lua的保留字也是这样的。
    • 在默认情况下,变量总是认为是全局的。

    Lua 数据类型

    • Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。

    nil(空)


    • nil = 空。
    • nil 作比较时应该加上双引号 type(X)=="nil"

    boolean(布尔)


    • Lua 把 false 和 nil 看作是"假",其他的都为"真"。

    number(数字)


    • Lua 默认只有一种 number 类型 -- double(双精度)类型。

    string(字符串)


    • 字符串由一对双引号或单引号来表示。
    • 也可以用 2 个方括号 "[[]]" 来表示"一块"字符串。
    html = [[
    菜鸟
    学习
    ]]
    print(html)
    
    • 在对一个数字字符串上进行算术操作时,Lua 会尝试将这个数字字符串转成一个数字。
      -字符串连接使用的是 ..
    > print("a" .. 'b')
    ab
    
    • 使用 # 来计算字符串的长度,放在字符串前面.
    > len = "www.runoob.com"
    > print(#len)
    14
    

    table(表)


    • 在 Lua 里表的默认初始索引一般以 1 开始。

    function(函数)


    • function 可以以匿名函数(anonymous function)的方式通过参数传递。

    thread(线程)


    • 线程跟协程的区别:线程可以同时多个运行,而协程任意时刻只能运行一个,并且处于运行状态的协程只有被挂起(suspend)时才会暂停。

    userdata(自定义类型)


    • 可以将任意 C/C++ 的任意数据类型的数据(通常是 struct 和 指针)存储到 Lua 变量中调用。

    Lua 变量

    • Lua 变量有三种类型:全局变量、局部变量、表中的域。
    • 用 local 显式声明为局部变量,局部变量的作用域为从声明位置开始到所在语句块结束。

    赋值语句


    • 赋值语句右边的值会依次赋给左边的变量,遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作,可以这样进行交换变量的值。
    x, y = y, x                     -- swap 'x' for 'y'
    
    • 应该尽可能的使用局部变量,有两个好处:
    1. 避免命名冲突;
    2. 访问局部变量的速度比全局变量更快。

    索引


    • 对 table 的索引使用方括号 []。Lua 也提供了 . 操作。
    t[i]
    t.i                 -- 当索引为字符串类型时的一种简化写法
    

    Lua 循环


    • while循环

    while(condition)
    do
       statements
    end
    
    • for 循环

    1. 数值for循环

    for var=exp1,exp2,exp3 do  
        <执行体>  
    end  
    -- var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var,并执行一次 "执行体"。exp3 是可选的,如果不指定,默认为1。
    

    2. 泛型for循环

    --打印数组a的所有值  
    a = {"one", "two", "three"}
    for i, v in ipairs(a) do
        print(i, v)
    end 
    -- i是数组索引值,v是对应索引的数组元素值。ipairs是Lua提供的一个迭代器函数,用来迭代数组。
    

    pairs 能迭代所有键值对
    ipairs 可以想象成 int+pairs,只会迭代键为数字的键值对。

    • repeat...until 循环

    repeat
       statements
    until( condition )
    -- 在条件进行判断前循环体都会执行一次
    
    • 循环嵌套

    repeat
       statements
       repeat
          statements
       until( condition )
    until( condition )
    

    还可以使用不同的循环类型来嵌套。

    • break 语句

    如果你使用循环嵌套,break语句将停止最内层循环的执行,并开始执行的外层的循环语句。

    相关文章

      网友评论

          本文标题:Lua 语言学习教程

          本文链接:https://www.haomeiwen.com/subject/anqabctx.html