濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Lua基本語(yǔ)法

Lua基本語(yǔ)法

熱門標(biāo)簽:外呼系統(tǒng)一天耗費(fèi)多少流量 電話機(jī)器人每天搜索多少次 免費(fèi)門店地圖標(biāo)注注冊(cè)入駐 ??谥悄苷Z(yǔ)音電銷機(jī)器人好用嗎 陜西便宜電銷機(jī)器人軟件 昆明電話外呼系統(tǒng)好么 杞縣地圖標(biāo)注app 衡水外呼線路解決 艾比利外呼系統(tǒng)

1 簡(jiǎn)介

由 clean C 實(shí)現(xiàn)。需要被宿主程序調(diào)用,可以注入 C 函數(shù)。

2 語(yǔ)法約定

Lua 的語(yǔ)法基于 BNF 的語(yǔ)法規(guī)則。

Lua 對(duì)大小寫敏感。

2.1 保留關(guān)鍵字

C 語(yǔ)言中沒(méi)有的關(guān)鍵字有:

復(fù)制代碼 代碼如下:

and elseif function
in nil local not or
repeat then until

規(guī)范:全局變量以下劃線開(kāi)頭。

2.2 操作符

C 語(yǔ)言中沒(méi)有的操作符:

^
~=
//  -- 向下取整
Lua 中沒(méi)有的操作符:

+=
-=

2.3 字符串定義

采用轉(zhuǎn)義符:通過(guò)轉(zhuǎn)義符表示那些有歧義的字符

字符表示

a           -- 代表字符 a
\97         -- 代表字符 a
\049        -- 代表數(shù)字字符 1
其他轉(zhuǎn)義符表示

\\n         -- 代表字符串 \n
\n          -- 代表?yè)Q行
注意數(shù)字字符必須是三位。其他字符則不能超過(guò)三位。

采用長(zhǎng)括號(hào):長(zhǎng)括號(hào)內(nèi)的所有內(nèi)容都作為普通字符處理。

[[]]        -- 0級(jí)長(zhǎng)括號(hào)
[==[]==]    -- 2級(jí)長(zhǎng)括號(hào)

3 值與類型

Lua 是動(dòng)態(tài)語(yǔ)言,變量沒(méi)有類型,值才有。值自身攜帶類型信息。

Lua 有八種基本數(shù)據(jù)類型:nil, boolean, number, string, function, userdata, thread, table。

僅 nil 和 false 導(dǎo)致條件為假,其他均為真。

userdata 類型變量用于保存 C 數(shù)據(jù)。 Lua 只能對(duì)該類數(shù)據(jù)進(jìn)行使用,而不能進(jìn)行創(chuàng)建或修改,保證宿主程序完全掌握數(shù)據(jù)。

thread 用于實(shí)現(xiàn)協(xié)程(coroutine)。

table 用于實(shí)現(xiàn)關(guān)聯(lián)數(shù)組。table 允許任何類型的數(shù)據(jù)做索引,也允許任何類型做 table 域中的值(前述
任何類型 不包含 nil)。table 是 Lua 中唯一的數(shù)據(jù)結(jié)構(gòu)。
由于函數(shù)也是一種值,所以 table 中可以存放函數(shù)。

function, userdata, thread, table 這些類型的值都是對(duì)象。這些類型的變量都只是保存變量的引用,并且在進(jìn)行賦值,參數(shù)傳遞,函數(shù)返回等操作時(shí)不會(huì)進(jìn)行任何性質(zhì)的拷貝。

庫(kù)函數(shù) type() 返回變量的類型描述信息。

3.1 強(qiáng)制轉(zhuǎn)換

Lua 提供數(shù)字與字符串間的自動(dòng)轉(zhuǎn)換。
可以使用 format 函數(shù)控制數(shù)字向字符串的轉(zhuǎn)換。

4 變量

變量有三種類型:全局變量、局部變量、表中的域。

函數(shù)外的變量默認(rèn)為全局變量,除非用 local 顯示聲明。函數(shù)內(nèi)變量與函數(shù)的參數(shù)默認(rèn)為局部變量。

局部變量的作用域?yàn)閺穆暶魑恢瞄_(kāi)始到所在語(yǔ)句塊結(jié)束(或者是直到下一個(gè)同名局部變量的聲明)。

變量的默認(rèn)值均為 nil。

復(fù)制代碼 代碼如下:

a = 5               -- 全局變量
local b = 5     -- 局部變量
function joke()
    c = 5           -- 局部變量
    local d = 6 -- 局部變量
end
print(c,d)      --> nil nil
do
    local a = 6 -- 局部變量
    b = 6           -- 全局變量
    print(a,b); --> 6 6
end
print(a,b)      --> 5 6

方便標(biāo)記,--> 代表前面表達(dá)式的結(jié)果。

4.1 索引

對(duì) table 的索引使用方括號(hào) []。Lua使用語(yǔ)法糖提供 . 操作。

t[i]
t.i                 -- 當(dāng)索引為字符串類型時(shí)的一種簡(jiǎn)化寫法
gettable_event(t,i) -- 采用索引訪問(wèn)本質(zhì)上是一個(gè)類似這樣的函數(shù)調(diào)用

4.2 環(huán)境表

所有全局變量放在一個(gè)環(huán)境表里,該表的變量名為 _env 。對(duì)某個(gè)全局變量 a 的訪問(wèn)即 _env.a (_env_ 只是為了方便說(shuō)明)。

每個(gè)函數(shù)作為變量持有一個(gè)環(huán)境表的引用,里面包含該函數(shù)可調(diào)用的所有變量。
子函數(shù)會(huì)從父函數(shù)繼承環(huán)境表。
可以通過(guò)函數(shù) getfenv / setfenv 來(lái)讀寫環(huán)境表。

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

您可能感興趣的文章:
  • Lua中的基本語(yǔ)法、控制語(yǔ)句總結(jié)
  • Lua簡(jiǎn)介、編譯安裝教程及變量等語(yǔ)法介紹
  • Lua教程(二):語(yǔ)法約定
  • ubuntu 14.04下熟悉lua的語(yǔ)法

標(biāo)簽:臨滄 西寧 宿遷 營(yíng)口 ???/a> 昌都 南京 泰安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua基本語(yǔ)法》,本文關(guān)鍵詞  Lua,基本,語(yǔ)法,Lua,基本,語(yǔ)法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua基本語(yǔ)法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Lua基本語(yǔ)法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    理塘县| 太和县| 集安市| 枣强县| 宁乡县| 西青区| 旺苍县| 丹江口市| 洛南县| 当阳市| 安丘市| 镇雄县| 永昌县| 江安县| 九台市| 大理市| 内黄县| 南江县| 三台县| 常州市| 光泽县| 邵武市| 邛崃市| 若羌县| 汤原县| 新宁县| 铜梁县| 林芝县| 马鞍山市| 霍林郭勒市| 海阳市| 南靖县| 普宁市| 延安市| 康定县| 太康县| 沾化县| 滕州市| 尼玛县| 尚志市| 锡林郭勒盟|