在大多數Lua語法分析中能夠得到這些標準Lua函數. 無可爭辯, 咱們能夠查閱Lua網站, 可是一些少了的函數被Blizzard進行了調整. 下面列出了全部Lua函數. WoW API中的Lua注意在WoWAPI沒有提供全部標準的Lua函數, 很顯然, 操做系統以及文件I/O庫是不支持的 Lua函數這些函數都是Lua編程語言的一部分, 點擊這裏瞭解更多. •assert(value) - 檢查一個值是否爲非nil, 若不是則(若是在wow.exe打開調試命令)顯示對話框以及輸出錯誤調試信息 •collectgarbage() - 垃圾收集器. (新增於1.10.1) •date(format, time) - 返回當前用戶機器上的時間. •error("error message",level) - 發生錯誤時,輸出一條定義的錯誤信息.使用pcall() (見下面)捕捉錯誤. •gcinfo() - 返回使用中插件內存的佔用量(kb)以及當前垃圾收集器的使用量(kB). •getfenv(function or integer) - 返回此表已獲取函數的堆棧結構或者堆棧等級 •getmetatable(obj, mtable) - 獲取當前的元表或者用戶數據對象. •loadstring("Lua code") - 分析字符串中的lua代碼塊而且將結果做爲一個函數返回 •next(table, index) - 返回下一個key,一對錶值.容許遍歷整個表 •pcall(func, arg1, arg2, ...) - 受保護調用. 執行函數內容,同時捕獲全部的異常和錯誤. •select(index, list) - 返回選擇此列表中的商品數值.或者是此件物品在列表中的索引值 •setfenv(function or integer, table) - 設置此表已獲取函數的堆棧結構或者堆棧等級 •setmetatable(obj, mtable) - 設置當前表的元表或者用戶數據對象 •time(table) - 返回從一個unix時間值 •type(var) - 判斷當前變量的類型, "number", "string", "table", "function" 或者 "userdata". •unpack(table) - 解壓一個表.返回當前表中的全部值. •xpcall(func, err) - 返回一個布爾值指示成功執行的函數以及調用失敗的錯誤信息.另外運行函數或者錯誤的返回值 數學函數這些表函數一樣能夠參考Lua函數庫(他們都是以math.開頭, 詳情參閱數學庫瞭解更多信息). 三角函數是沒有參考的, 包括角度->弧度的轉換.暴雪的版本使用角度.而Lua的標準數學庫則使用的弧度. •abs(value) - 返回當前數值的絕對值 •acos(value) - 返回此角度值的弧餘弦值. •asin(value) - 返回此角度值的弧正弦值 •atan(value) - 返回此角度值的弧正切值 •atan2(y, x) - 在角度中, 返回Y/X的弧正切值. •ceil(value) - 返回一個整數, 無論小數點後面是多少, 整數部分都進1 •cos(degrees) - 返回角度的餘弦值 •deg(radians) - 弧度轉換角度 •exp(value) - 返回此值的指數值 •floor(value) - 返回此值的整數值 •frexp(num) - 返回當前數字小數點後的數值以及小數點後的位數 •ldexp(value, 倍數) - 輸出此數值的倍數 •log(value) - 返回此值的天然對數 (以e爲底數) •log10(value) - 返回以10爲底數的值 •max(value[, values...]) - 在一堆值中查找最大值 •min(value[,values...]) - 在一堆值中查找最小值 •mod(value,modulus) - 返回此值的餘數 •rad(degrees) - 角度轉換弧度 •random([ [lower,] upper]) - 返回一個隨機數字 (可選界限爲整數值) •randomseed(seed) - 爲僞隨機數字生成器設定種子 •sin(degrees) - 返回當前角度的正弦值 •sqrt(value) - 返回數值的平方根值(好比100的平方根爲10) •tan(degrees) - 返回當前角度的正切值 字符串庫這些表函數一樣能夠參考Lua字符串庫(他們都是以string.開頭, 參考字符串庫瞭解更多信息) •format(formatstring[, value[, ...]]) - 格式化字符串 •gsub(string,pattern,replacement[, limitCount]) - 全局替換 •strbyte(string[, index]) - 轉換字符串爲整數值(能夠指定某個字符). •strchar(asciiCode[, ...]) - 轉換整數爲相對應的字符 •strfind(string, pattern[, initpos[, plain]]) - 在一個指定的目標字符串中搜索指定的內容(第三個參數爲索引),返回其具體位置. •strlen(string) - 返回當前字符串的字符數 •strlower(string) - 將字符串的字母轉換爲小寫格式 •strmatch(string, pattern[, initpos]) - 與strfind不一樣的是,macth返回的是具體值,而find返回的是此值的位置 •strrep(seed,count) - 返回一個字符串種子副本的個數 •strsub(string, index[, endIndex]) - 返回字符串指定位置的值. •strupper(string) - 將字符串的字母轉爲大寫格式 •tonumber(arg[, base]) - 若參數能轉爲數字則返回一個數值.能夠指定轉換的類型.默認爲十進制整數 •tostring(arg) - 轉換參數爲字符串 下面的字符串函數是wow獨有的 •strtrim(string) - 去除字符串先後空格 •strsplit(delimiter, string) - 分割字符串 •strjoin(delimiter, string, string[, ...]) - 根據定界符將字符串鏈接起來 表函數這些表函數一樣能夠參考Lua表庫 (他們都是以"table.開頭", 查閱Table庫 f瞭解更多信息). 也知道, 不少表都被設計爲只有數字索引, 開始於1而且沒有結尾(如like {[1] = "foo", [3] = "bar"} --- [2]是不存在的因此爲nil值).工做時,與任何其餘表並無差異,但極可能會產生意想不到的結果. 在編寫lua中, 這個也就是一般所說的bug •foreach(table,function) - 爲表中的每一個元素執行函數 •foreachi(table,function) - 爲表中的每一個元素執行函數, 按順序訪問(不推薦, 可使用ipairs代替) •getn(table) - 看成爲一個聊表時, 返回當前表的大小. 如今已經廢棄了, 你能夠直接使用#符號.使用#(table)代替table.getn(table) •ipairs(table) - 返回一個迭代型整數遍歷表。 •pairs(table) - 返回一個迭代遍歷表 •sort(table[, comp]) - 對一個數組進行排序, 還能夠指定一個可選的次序函數 •tinsert(table[, pos], value) - 將一個元素插入指定的位置(默認在表的最後) •tremove(table[, pos]) - 刪除指定位置的元素(默認表最後一個) Bit Functions魔獸世界包含了Lua BitLib庫(他們都是以 "bit."開頭). 與C的位運算相同.位運算庫並不是Lua標準函數庫的一部分, 可是在WoW 1.9中獲得了應用 •bit.bnot(a) - 返回一個a的補充 •bit.band(w1,...) - 返回w的位與 •bit.bor(w1,...) - 返回w的位或 •bit.bxor(w1,...) - 返回w的位異或 •bit.lshift(a,b) - 返回a向左偏移到b位 •bit.rshift(a,b) - 返回a邏輯右偏移到b位 •bit.arshift(a,b) - 返回a算術偏移到b位 •bit.mod(a,b) - 返回a除以b的整數餘數 Lua是一個腳本語言, 使用這些函數來對你的數據結構進行比對是十分慢的. 除非你有一個很是大的數據庫以及須要保護的RAM使用, 保存你的信息到幾個或個別的變量中. 筆記•全部的字符都有他們的元表設置到全局字符串表, 所以一些字符串函數能夠直接寫在冒號前面進行調用: 切換行號顯示 1 local s = string.format(input, arg1, arg2, ...) 2 3 -- 能夠寫成這樣 4 local s = input:format(arg1, arg2, ...) -- input將做爲第一個參數, 複製到代碼上, 這就是冒號語法 •這一樣可使用在字符串上, "%d":format(arg1)不是有效的lua代碼,你能夠寫成 切換行號顯示 1 ("%d"):format(arg1) •自從使用字符串表, 一些函數放在字符串表裏也是一樣能夠工做的, 下面的例子是有效的: 切換行號顯示 1 function string.print(a) 2 return print(a) 3 end 4 ("test"):print() 雖然你應儘可能避免填充字符串表與你的函數。 相關資源你還能夠參閱Lua瞭解更多Lua開發資料.