• Chunk


    Chunk是一系列语句,Lua执行的每一块语句,比如一个文件或者交互模式下的每一行都是一个Chunk。

    每个语句结尾的分号(;)是可选的,但如果同一行有多个语句最好用;分开

    a = 1   b = a*2    -- ugly, but valid

    一个Chunk可以是一个语句,也可以是一系列语句的组合,还可以是函数,Chunk可以很大,在Lua中几个MByte的Chunk是很常见的。

    你还可以以交互模式运行Lua,不带参数运行Lua:

    Lua 5.0  Copyright © 1994-2003 Tecgraf, PUC-Rio

    你键入的每个命令(比如:"Hello World")在你键入回车之后立即被执行,键入文件结束符可以退出交互模式(Ctrl-D in Unix, Ctrl-Z in DOS/Windows),或者调用OS库的os.exit()函数也可以退出。

    在交互模式下,Lua通常把每一个行当作一个Chunk,但如果Lua一行不是一个完整的Chunk时,他会等待继续输入直到得到一个完整的Chunk.在Lua等待续行时,显示不同的提示符(一般是>>).

    可以通过指定参数让Lua执行一系列Chunk。例如:假定一个文件a内有单个语句x=1;另一个文件b有语句print(x)

    prompt> lua -la -lb

    命令首先在一个Chunk内先运行a然后运行b。(注意:-l选项会调用require,将会在指定的目录下搜索文件,如果环境变量没有设好,上面的命令可能不能正确运行。我们将在8.1节详细更详细的讨论the require function)

    -i选项要求Lua运行指定Chunk后进入交互模式.

    prompt> lua -i -la -lb

    将在一个Chunk内先运行a然后运行b,最后直接进入交互模式。

    另一个连接外部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代码时是很方便的。

  • 相关阅读:
    MPI 学习
    关于谱聚类
    线程调度的学习例子
    [转] Linux的IO复用
    网络编程socket
    关于python机器学习常用算法的例子
    [转](阿里笔试)使用多线程和sleep函数生成字符串的伪随机排列
    Single Number II
    阿里面试题,N个士兵的通话问题
    凸优化算法之牛顿法
  • 原文地址:https://www.cnblogs.com/newlist/p/3574729.html
Copyright © 2020-2023  润新知