lua函式隨記

2022-02-07 01:33:07 字數 4923 閱讀 5372

在大多數lua語法分析中可以獲得這些標準lua函式. 無可爭辯, 我們可以查閱lua**, 但是一些少了的函式被blizzard進行了調整. 下面列出了所有lua函式. 

wow api中的lua注意在wowapi沒有提供所有標準的lua函式, 很顯然, 作業系統以及檔案i/o庫是不支援的

•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的標準數學庫則使用的弧度.

•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) -返回當前角度的正切值

•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.開頭

"也知道, 很多表都被設計為只有數字索引, 開始於1並且沒有結尾(如like --- [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, ...)

23 --可以寫成這樣

4 local s = input:format(arg1, arg2, ...) --input將作為第乙個引數, 複製到**上, 這就是冒號語法

•這同樣可以使用在字串上, "%d

":format(arg1)不是有效的lua**,你可以寫成

切換行號顯示

1 ("%d"

):format(arg1)

•自從使用字串表, 一些函式放在字串表裡也是同樣可以工作的, 下面的例子是有效的:

切換行號顯示

1 function string

.print(a)

2return

print(a)

3end

4 ("

test

"):print()

雖然你應盡量避免填充字串表與你的函式。

番外 函式隨記

void swap int a,int b a 和 b 列舉四種情況 a 110 0 b 010 1 a 100 1 b 110 0 和最初的 a 一樣 a 010 1 和最初的 b 一樣 data 1 bit num bit num 為0 資料最大位1.function void getsyste...

php函式隨記1

函式 parse url url 處理函式庫 parse url 解析 url 字串。語法 array parse url string url 返回值 陣列 函式種類 資料處理 內容說明 本函式將 url 字串予以解析,並將結果返回陣列中。完整的 url 類似這樣子 scheme user pas...

隨記(1)常用函式

lists map返回列表 執行返回結果,組成列表 lists map fun x x,x end,a,b,c 結果 a,a b,b c,c lists filte返回列表 挑選符合的,組成列表 lists filter fun e is integer e end,q,2,a,4 結果 2,4 l...