zoukankan      html  css  js  c++  java
  • 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代码时是很方便的。

  • 相关阅读:
    使用非ServiceDependency方法获得模块中已注册的服务
    一个比较有效的存储过程命名规则
    SQL重复记录查询
    Redis命令行启动,修改密码
    springboot+dubbo后端打包成jar并运行
    开发问题:NOAUTH Authentication required
    @Api报错
    String的indexof使用
    开发报错:init datasource error, url: jdbc:mysql://localhost:3306/book(初始化数据库错误)
    开发问题:异常Required request body is missing
  • 原文地址:https://www.cnblogs.com/newlist/p/3574729.html
Copyright © 2011-2022 走看看