Lua教程(二):文法約定_Lua

來源:互聯網
上載者:User

Lua 中用到的 名字(也稱作 標識符)可以是任何非數字開頭的字母、數字、底線組成的字串。 這符合幾乎所有程式設計語言中關於名字的定義。 (字母的定義依賴於當前環境:系統內容中定義的字母表中的字母都可以被用於標識符。) 標識符用來命名變數,或作為表的網域名稱。

下面的關鍵字是保留的,不能用作名字:

複製代碼 代碼如下:

and       break     do        else      elseif

end       false     for       function  if

in        local     nil       not       or

repeat    return    then      true      until     while

Lua 是一個大小寫敏感的語言: and 是一個保留字,但是 And 和 AND 則是兩個不同的合法的名字。 一般約定,以底線開頭串連一串大寫字母的名字(比如 _VERSION)被保留用於 Lua 內部全域變數。

下面這些是其它的 token :

複製代碼 代碼如下:

+     –     *     /     %     ^     #

==    ~=    <=    >=    <     >     =

(     )     {     }     [     ]

;     :     ,     .     ..    …

字串既可以用一對單引號引起,也可以是雙引號,裡面還可以包含類似 C 的轉義符: ‘\a' (響鈴), ‘\b' (退格), ‘\f' (表單), ‘\n' (換行), ‘\r' (斷行符號), ‘\t' (橫向製表), ‘\v' (縱向製表), ‘\\' (反斜線), ‘\”‘ (雙引號), 以及 ‘\” (單引號)。 而且,如果在一個反斜線後跟了一個真正的分行符號,其結果就是在字串中產生一個分行符號。 我們還可以用反斜線加數位形式 \ddd 來描述一個字元。這裡, ddd 是一串最多三位的十進位數字。(注意,如果需要在這種描述方法後接一個是數位字元, 那麼反斜線後必須寫滿三個數字。)Lua 中的字串可以包含任何 8 位的值。包括用 ‘\0′ 表示的零。

只有在你需要把不同的引號、換行、反斜線、或是零結束符這些字元置入字串時, 你才必須使用轉義符。別的任何字元都可以直接寫在文本裡。(一些控制符可以會影響檔案系統造成某些問題, 但是不會引起 Lua 的任何問題。)

字串還可以用一種長括弧括起來的方式定義。 我們把兩個正的方括弧間插入 n 個等號定義為第 n 級正長括弧。 就是說,0 級正的長括弧寫作 [[ , 一級正的長括弧寫作 [=[ ,如此等等。 反的長擴充也作類似定義; 舉個例子,4 級反的長括弧寫作 ]====] 。 一個長字串可以由任何一級的正的長括弧開始,而由第一個碰到的同級反的長括弧結束。 整個詞法分析過程將不受分行限制,不處理任何轉意符,並且忽略掉任何不同層級的長括弧。 這種方式描述的字串可以包含任何東西,當然特定層級的反長括弧除外。

另一個約定是,當正的長括弧後面立即跟了一個分行符號, 這個分行符號就不包含在這個字串內。 舉個例子,假設一個系統使用 ASCII 碼 (這時,'a' 編碼為 97 ,分行符號編碼為 10 ,'1′ 編碼為 49 ), 下面五種方式描述了完全相同的字串:

複製代碼 代碼如下:

a = ‘alo\n123″‘

a = “alo\n123\”"

a = ‘\97lo\10\04923″‘

a = [[alo

123"]]

a = [==[

alo

123"]==]


數字常量可以分兩部分寫,十進位底數部分和十進位的指數部分。指數部分是可選的。 Lua 也支援十六進位整數常量,只需要在前面加上首碼 0x 。 下面是一些合法的數字常量的例子:
複製代碼 代碼如下:

3   3.0   3.1416   314.16e-2   0.31416E1   0xff   0×56

注釋可以在除字串內的任何地方是以兩橫 (–) 開始。 如果跟在兩橫後面的不是一個長括弧,這就是一個短注釋,它的作用範圍直到行末; 否則就是一個長注釋,其作用範圍直到遇到反的長括弧。 長注釋通常被用來臨時屏蔽代碼塊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.