美文网首页
Lua -<1>- Chunks & 全局变

Lua -<1>- Chunks & 全局变

作者: _小圆球_ | 来源:发表于2018-06-05 09:54 被阅读7次
    • 注:lua5.0以上版本去除了table.getn方法,可以用#tableName代替
    • Chunk是一系列语句,Lua 执行的每一块语句,比如一个文件或者交互模式下的每一行都是一个Chunk。
      每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用 ; 分开
    a = 1 b = a*2   -- ugly, but valid
    
    • 一个 Chunk 可以是一个语句,也可以是一系列语句的组合,还可以是函数,Chunk 可以很大,在 Lua 中几个MByte的Chunk是很常见
    • 另一个连接外部 Chunk 的方式是使用 dofile 函数,dofile 函数加载文件并执行它.假设有一个文件:
    -- file 'lib1.lua' 
    function norm (x, y) 
    local n2 = x^2 + y^2 
    return math.sqrt(n2) 
    end 
    function twice (x) 
    return 2*x 
    end 
    

    在交互模式下:

    > dofile("lib1.lua") -- load your library 
    > n = norm(3.4, 1.0) 
    > print(twice(n)) --> 7.0880180586677 
    

    -i 和 dofile在调试或者测试Lua代码是很方便

    • 全局变量
      • 全局变量不需要声明,给一个变量赋值后即创建了这个全局变量,访问一个没有初始化的全局变量也不会出错,只不过结果是 nil
    print(b) --> nil 
    b = 10 
    print(b) --> 10 
    

    如果你想删除一个全局变量,只需要将变量赋值为 nil

    b = nil
    print(b) --> nil 
    

    这样变量 b 就好像从没被使用过一样.换句话说, 当且仅当一个变量不等于 nil 时,
    这个变量存在。

    • 词法约定
      • 标识符:字母或者下划线开头的字母、下划线、数字序列。最好不要使用下划线加大写字母的标识符,Lua保留字也是这样
    and break do else elseif
    end false for function if
    in local nil not or
    repeat return then true until
    while
    

    注意:Lua 是大小写敏感的.

    • 注释
      注释:单行注释:--
      多行注释:--[[ --]]
    --[[ 
    print(10) -- no action (comment) 
    --]] 
    

    相关文章

      网友评论

          本文标题:Lua -<1>- Chunks & 全局变

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