lua中chunk和block之间的区别是什么?我无法理解什么是大块!
答案 0 :(得分:6)
块是一个可独立执行的语句序列。块只是一系列语句。区别在于块可以独立于其他块执行。
所有块都是块(语句序列),但并非所有块都是块。
一个块基本上是一个Lua 函数;你可以用一些参数调用它,它将返回0或更多的值。这就是我所说的“独立可执行”:块中的语句将按顺序执行。但是一旦你退出一个块,你接下来执行的块就取决于你。
答案 1 :(得分:5)
此处已被询问并致辞:http://lua-users.org/lists/lua-l/2012-06/threads.html#00723
从5.2手册:
Lua的执行单位称为块。从语法上讲,块只是一个块:
chunk ::= block
罗伯托的口中:
块是块的事实并不意味着任何块都是块 块。块不嵌套(不像块)。块是最外面的块 你喂“加载”。
答案 2 :(得分:3)
块可以是一大块代码。但是,块通常表示零个或多个语句属于(例如)if
语句或函数。
[...]一个块是一个语句列表;从语法上讲,块与块[...]
相同
如果你看the grammar of Lua,你会发现它们是相同的:
chunk ::= {stat [`;´]} [laststat [`;´]]
block ::= chunk
答案 3 :(得分:1)
Block是块的子部分,它们可能在代码示例02中有些相同: 例如01:
if condition1 then
block1
elseif condition2 then
block2
elseif condition3 then
block3
else
block4
end
在这里,我们有一个从第一个开始的块 如果condition1然后到最后结束 但是这个代码有四个块,每个条件都有单独的块。 这个例子有一个块和一个四个街区。
示例02:
/////////////////////////// 01 //////////////////////
for variable = beginning, end, step do
block
end
/////////////////////////// 02 //////////////////////
function Name()
block
end
/////////////////////////// 03 //////////////////////
if condition then
block
end
在示例02 chunk&块是相同的但总是不一样。 请自己读一读。
http://www.lua.org/manual/2.5/manual.html
4.4.1 - 阻止
块是一个语句列表,按顺序执行。任何语句都可以选择后跟分号:
阻止:= {stat sc} [ret] sc:= [';']
2 - 环境和大块
Lua的执行单位称为块。块的语法是:
chunk:= {stat |功能} [转]
是否有用?????