Lua中双冒号的目的是什么?

时间:2016-01-06 00:10:41

标签: lua special-characters goto colon

我已经知道Lua的5.3版本已经出现不久之前,但直到现在还没有理由在线访问该文档。我可能错了,但我不相信记住双冒号::的用法,因为它在那里被大量使用。

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

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

1 个答案:

答案 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。