我已经知道Lua的5.3版本已经出现不久之前,但直到现在还没有理由在线访问该文档。我可能错了,但我不相信记住双冒号::
的用法,因为它在那里被大量使用。
我看到它被认为是一种“特殊标记”,就像其他人一样(大于,小于星号等),但我知道这些是什么。
在Lua中使用它们的目的是什么?
答案 0 :(得分:4)
::
仅用于Lua *中的一件事:
Declaring labels for jumping with goto
.
goto label
::label::
goto
语句将程序控制转移到标签。出于语法原因,Lua中的标签也被视为语句:stat ::= goto Name stat ::= label label ::= ‘::’ Name ‘::’
标签在定义它的整个块中可见,除了在嵌套块中定义了具有相同名称的标签并在嵌套函数内。只要goto没有进入局部变量的范围,它就可以跳转到任何可见标签。
标签和空语句称为 void语句,因为它们不执行任何操作。
*我不会考虑在Lua本身的文档使用中广泛使用扩展BNF。