Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Lua中使用双冒号的目的是什么?_Lua_Special Characters_Goto_Colon - Fatal编程技术网

在Lua中使用双冒号的目的是什么?

在Lua中使用双冒号的目的是什么?,lua,special-characters,goto,colon,Lua,Special Characters,Goto,Colon,我知道Lua的5.3版不久前就发布了,但直到现在才有理由在线访问文档。我可能错了,但我不相信我记得双冒号的用法,就像它在那里被大量使用一样 我看到它被认为是一种“特殊标记”,就像其他标记一样(大于、小于、星号等),但我知道这些标记的用途 在Lua中使用它们的目的是什么?::在Lua*中仅用于一件事: goto语句将程序控制转移到标签。出于句法原因,Lua中的标签也被视为语句: stat ::= goto Name stat ::= label label ::= ‘::’ Name ‘::’

我知道Lua的5.3版不久前就发布了,但直到现在才有理由在线访问文档。我可能错了,但我不相信我记得双冒号的用法,就像它在那里被大量使用一样

我看到它被认为是一种“特殊标记”,就像其他标记一样(大于、小于、星号等),但我知道这些标记的用途


在Lua中使用它们的目的是什么?

::
在Lua*中仅用于一件事:

goto
语句将程序控制转移到标签。出于句法原因,Lua中的标签也被视为语句:

stat ::= goto Name
stat ::= label
label ::= ‘::’ Name ‘::’
标签在定义它的整个块中可见,但在定义同名标签的嵌套块内部和嵌套函数内部除外。goto可以跳转到任何可见标签,只要它不进入局部变量的范围

标签和空语句称为void语句,因为它们不执行任何操作


<>我不认为在Lua文档使用中使用扩展的BNF有很大的用途。< / P>啊,好吧。所以我真正的问题应该是关于
goto
语句!现在我知道应该把更多的注意力放在哪里了。当然,关于
goto
的一般建议是:除了打破多个循环之外,不要使用它,除非它真的让代码更可读。大多数时候,情况并非如此。
stat ::= goto Name
stat ::= label
label ::= ‘::’ Name ‘::’