【问题标题】:What's the difference between chunk and block in lualua中的chunk和block有什么区别
【发布时间】:2012-08-26 15:09:24
【问题描述】:

lua 中的块和块有什么区别?看不懂什么是chunk!!!

【问题讨论】:

    标签: lua


    【解决方案1】:

    块是独立可执行的语句序列。块只是一系列语句。不同的是,一个块可以独立于其他块执行。

    所有块都是块(语句的序列),但并非所有块都是块。

    块基本上是一个 Lua 函数;你可以用一些参数调用它,它会返回 0 个或多个值。这就是我所说的“独立可执行”:块中的语句将按顺序执行。但是一旦你退出一个块,你接下来执行什么块取​​决于你。

    【讨论】:

      【解决方案2】:

      已在此处询问和解决:http://lua-users.org/lists/lua-l/2012-06/threads.html#00723

      来自 5.2 手册:

      Lua 的执行单元称为块。从语法上讲,一个块就是一个块:chunk ::= block

      来自罗伯托的口中:

      块是块的事实并不意味着任何块都是 块。块不嵌套(与块不同)。块是最外层的块 您将其提供给“加载”。

      【讨论】:

        【解决方案3】:

        一个块可以是一段代码。然而,一个块通常意味着零个或多个属于例如if 语句或函数的语句。

        引用official Lua reference:

        [...] 块是语句的列表;从语法上讲,块与块相同 [...]

        如果您查看the grammar of Lua,您会发现它们是相同的:

        chunk ::= {stat [`;´]} [laststat [`;´]]
        
        block ::= chunk
        

        【讨论】:

          【解决方案4】:

          块是块的子部分,它们有时可能与代码示例 02 中的相同: 例如01:

           if condition1 then
                  block1
              elseif condition2 then
                  block2
              elseif condition3 then
                  block3
              else
                  block4
              end
          

          这里我们有一个从
          开始的块 if condition1 然后到最后 但是这段代码有四个块,每个条件都有单独的块。 这个例子有一个块和四个块。

          示例 02:

             /////////////////////////// 01 //////////////////////
          for variable = beginning, end, step do
                  block
              end
             /////////////////////////// 02 //////////////////////
          function Name()
                  block
              end
          
             /////////////////////////// 03 //////////////////////
           if condition then
                  block
              end
          

          在示例 02 中,块和块是相同的,但它们总是不相同。 请自行阅读。

          http://www.lua.org/manual/2.5/manual.html

          4.4.1 - 块

          块是顺序执行的语句列表。任何语句都可以选择后跟分号:

          block := {stat sc} [ret] sc := [';']

          2 - 环境和块

          Lua 的执行单元称为块。块的语法是:

          块 := {stat |函数} [返回]

          有用吗??????

          【讨论】:

          • @booirror 如果有用,请不要忘记选择它作为答案和向上箭头。
          • 是的,块由块组成。你认为是吗?
          • 是的,我认为块由单个结构的块(单个或多个)组成,通常以 end 结束。
          • 它们是一样的。您正在链接到 1997 年的 Lua 文档!那是15年前的事了。阅读我发布的参考资料,它来自 Lua 5.1,并明确指出它们实际上是同一件事。
          • @BartKiers 感谢更新。
          猜你喜欢
          • 1970-01-01
          • 2013-07-04
          • 1970-01-01
          • 2018-01-09
          • 1970-01-01
          • 2015-09-17
          • 1970-01-01
          • 1970-01-01
          • 2016-08-15
          相关资源
          最近更新 更多