【发布时间】:2012-08-26 15:09:24
【问题描述】:
lua 中的块和块有什么区别?看不懂什么是chunk!!!
【问题讨论】:
标签: lua
lua 中的块和块有什么区别?看不懂什么是chunk!!!
【问题讨论】:
标签: lua
块是独立可执行的语句序列。块只是一系列语句。不同的是,一个块可以独立于其他块执行。
所有块都是块(语句的序列),但并非所有块都是块。
块基本上是一个 Lua 函数;你可以用一些参数调用它,它会返回 0 个或多个值。这就是我所说的“独立可执行”:块中的语句将按顺序执行。但是一旦你退出一个块,你接下来执行什么块取决于你。
【讨论】:
已在此处询问和解决:http://lua-users.org/lists/lua-l/2012-06/threads.html#00723
来自 5.2 手册:
Lua 的执行单元称为块。从语法上讲,一个块就是一个块:
chunk ::= block
来自罗伯托的口中:
块是块的事实并不意味着任何块都是 块。块不嵌套(与块不同)。块是最外层的块 您将其提供给“加载”。
【讨论】:
一个块可以是一段代码。然而,一个块通常意味着零个或多个属于例如if 语句或函数的语句。
[...] 块是语句的列表;从语法上讲,块与块相同 [...]
如果您查看the grammar of Lua,您会发现它们是相同的:
chunk ::= {stat [`;´]} [laststat [`;´]]
block ::= chunk
【讨论】:
块是块的子部分,它们有时可能与代码示例 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 |函数} [返回]
有用吗??????
【讨论】: