2016-01-06 58 views
2

我已經意識到Lua版本5.3在不久之前就已經發布了,但直到現在還沒有理由在線訪問文檔。我可能是錯的,但我不相信記得使用雙冒號::,就像它在那裏大量使用一樣。Lua中雙冒號的目的是什麼?

我發現它被認爲是像其他人一樣的「特殊標記」(大於,小於,星號等),但我知道這些是什麼。

在Lua中使用它們的目的是什麼?

回答

4

::僅用於一件事在Lua *:

Declaring labels for jumping with goto.

goto label 
::label:: 

goto語句將程序控制的標籤。對於語法的原因,在Lua標籤將被視爲語句太:

stat ::= goto Name 
stat ::= label 
label ::= ‘::’ Name ‘::’ 

標籤是在它被定義,除了具有相同名稱的標籤被定義嵌套塊內部和嵌套函數內的整個塊是可見的。只要不進入局部變量的範圍,goto可以跳轉到任何可見標籤。

標籤和空語句被稱爲無效語句,因爲它們不執行任何操作。

*我不認爲擴展BNF在Lua本身的文檔使用中廣泛使用。

+0

啊,好的。所以我真正的問題應該是關於'goto'聲明!現在我知道應該把我的注意力放在哪裏。 – Pwrcdr87

+3

那麼,關於'goto'的正常建議自然是成立的:除非打破多個循環,否則不要使用它,除非它確實使您的代碼更具可讀性。大多數情況下,它沒有。 – Deduplicator

相關問題