Lua 4.0中關(guān)于函數(shù)學(xué)習(xí)筆記
Lua 4.0中關(guān)于函數(shù)學(xué)習(xí)筆記是本文要介紹的內(nèi)容,主要是把Lua4.0里面的函數(shù)總結(jié)出來,目的是為了和5.1中的函數(shù)進(jìn)行區(qū)分,由于工作中經(jīng)常使用到4.0中的函數(shù),所以列出來也便于查詢和學(xué)習(xí)。
標(biāo)準(zhǔn)庫
- _ALERT
- _ERRORMESSAGE
- call
- collectgarbage
功能:是垃圾收集器的通用接口,用于操作垃圾收集器
copytagmethods
dofile (filename)
功能:打開并且執(zhí)行一個(gè)lua塊,當(dāng)忽略參數(shù)filename時(shí),將執(zhí)行標(biāo)準(zhǔn)輸入設(shè)備(stdin)的內(nèi)容。返回所有塊的返回值。當(dāng)發(fā)生錯(cuò)誤時(shí),dofile將錯(cuò)誤反射給調(diào)用者
注:dofile不能在保護(hù)模式下運(yùn)行
dostring
功能:執(zhí)行一個(gè)字符串形式的lua塊
error (message [, level])
功能:終止正在執(zhí)行的函數(shù),并返回message的內(nèi)容作為錯(cuò)誤信息(error函數(shù)永遠(yuǎn)都不會(huì)返回)
通常情況下,error會(huì)附加一些錯(cuò)誤位置的信息到message頭部.
Level參數(shù)指示獲得錯(cuò)誤的位置,
Level=1[默認(rèn)]:為調(diào)用error位置(文件+行號(hào))
Level=2:指出哪個(gè)調(diào)用error的函數(shù)的函數(shù)
Level=0:不添加錯(cuò)誤位置信息
foreachi(table, function(i, v))
功能:會(huì)期望一個(gè)從 1(數(shù)字 1)開始的連續(xù)整數(shù)范圍,遍歷table中的key和value逐對(duì)進(jìn)行function(i, v)操作,與lua5.1中的用法相同
foreach
功能:與foreachi不同的是,foreach會(huì)對(duì)整個(gè)表進(jìn)行迭代,與lua5.1中的用法相同
- gcinfo
- getflobal
- gettagmethod
- globals
- newtag
- next
- print (...)
功能:簡單的以tostring方式格式化輸出參數(shù)的內(nèi)容
- rawget
- rawset
- rawgettable
- rawsettable
- setglobal
- settag
- settagmethod
- tag
tonumber (e [, base])
功能:嘗試將參數(shù)e轉(zhuǎn)換為數(shù)字,當(dāng)不能轉(zhuǎn)換時(shí)返回nil
base(2~36)指出參數(shù)e當(dāng)前使用的進(jìn)制,默認(rèn)為10進(jìn)制,如tonumber(11,2)=3
tostirng(e)
功能:將參數(shù)e轉(zhuǎn)換為字符串,此函數(shù)將會(huì)觸發(fā)元表的__tostring事件
type(v)
功能:返回參數(shù)的類型名("nil","number", "string", "boolean", "table", "function", "thread", "userdata")
assert(v [, message])
功能:相當(dāng)于C的斷言,
參數(shù):
v:當(dāng)表達(dá)式v為nil或false將觸發(fā)錯(cuò)誤,
message:發(fā)生錯(cuò)誤時(shí)返回的信息,默認(rèn)為"assertion failed!"
getn(table)
功能:返回table中元素的個(gè)數(shù),用法與lua5.1中的table.getn相同
sort(table, function)
功能:給定的table進(jìn)行升序排序,用法與lua5.1中的table.sort相同
tinsert(table, [pos,] value)
功能:向table中插入一個(gè)元素,用法與lua5.1中的table.insert相同
tremove(table[, pos])
功能:刪除table中的某一元素,用法與lua5.1中的table.remove相同
輸入輸出庫 io庫
colck
功能:返回一個(gè)程序使用CPU時(shí)間的一個(gè)近似值,同lua5.1中使用方法
date
功能:功能:返回一個(gè)按format格式化日期、時(shí)間的字串或表,同lua5.1中使用方法
execute
功能:相當(dāng)于C的system函數(shù),返回系統(tǒng)狀態(tài)碼,同lua5.1中使用方法
exit
功能:相當(dāng)于C的exit函數(shù),終止主程序,code為返回值,同lua5.1中使用方法
getenv
功能:返回當(dāng)前進(jìn)程的環(huán)境變量varname的值,若變量沒有定義時(shí)返回nil,同lua5.1中使用方法
remove
功能:刪除文件或一個(gè)空目錄,若函數(shù)調(diào)用失敗則返加nil加錯(cuò)誤信息,同lua5.1中使用方法
rename
功能:更改一個(gè)文件或目錄名,若函數(shù)調(diào)用失敗則返加nil加錯(cuò)誤信息,同lua5.1中使用方法
setlocale
功能:設(shè)置程序的當(dāng)前設(shè)置,函數(shù)返回***的值,失敗則返回nil,同lua5.1中使用方法
tmpname
功能:返回一個(gè)臨時(shí)文件名,同lua5.1中使用方法
debug
功能:進(jìn)入交互式的調(diào)試模式,解釋我們的輸入,輸入cont回車就退出
appendto
openfile(file, mod)
功能:打開一個(gè)文件,返回一個(gè)文件句柄。有兩個(gè)參數(shù),文件名和打開模式
參數(shù):file文件名
參數(shù):mode有下列幾種形態(tài)字符串:
r 打開只讀文件,該文件必須存在。
r+ 打開可讀寫的文件,該文件必須存在。
rb+ 讀寫打開一個(gè)二進(jìn)制文件,只允許讀寫數(shù)據(jù)。
rt+ 讀寫打開一個(gè)文本文件,允許讀和寫。
w 打開只寫文件,若文件存在則文件長度清為0,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內(nèi)容會(huì)消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾,即文件原先的內(nèi)容會(huì)被保留。
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會(huì)建立該文件,如果文件存在,寫入的數(shù)據(jù)會(huì)被加到文件尾后,即文件原先的內(nèi)容會(huì)被保留。
wb 只寫打開或新建一個(gè)二進(jìn)制文件;只允許寫數(shù)據(jù)。
wb+ 讀寫打開或建立一個(gè)二進(jìn)制文件,允許讀和寫。
wt+ 讀寫打開或著建立一個(gè)文本文件;允許讀寫。
at+ 讀寫打開一個(gè)文本文件,允許讀或在文本末追加數(shù)據(jù)。
ab+ 讀寫打開一個(gè)二進(jìn)制文件,允許讀或在文件末追加數(shù)據(jù)。
例如:
- local f = openfile("abc.txt", "rb")
closefile(f)
功能:關(guān)閉打開文件的句柄
- read(f, readtype)
- 功能:從一個(gè)打開的文件中讀取數(shù)據(jù)。
- 參數(shù):f是打開的文件句柄
- 參數(shù):readtype表示要讀取的方式
- "*a"表示讀取整個(gè)文件內(nèi)容
- "*l"表示讀一行
- "*n"表示讀一個(gè)數(shù)字
- "*w"表示讀一個(gè)單詞
例如:
- local f = openfile("d:\\test\\test\\test.cpp", "rb");
- assert(f)
- local data = read(f, "*l");
- print(data)
- 輸出:this is the first line!
readfrom
seek(file, seekmod, pos)
功能:移動(dòng)文件指針
參數(shù):f是打開的文件句柄
參數(shù):移動(dòng)模式
set是設(shè)置指針移動(dòng)的位置,第三個(gè)參數(shù)是具體要移動(dòng)的位置
cur是從指針當(dāng)前位置移動(dòng),第三個(gè)參數(shù)是具體要移動(dòng)的位置,可以為負(fù),表示前移
end是移動(dòng)到文件結(jié)果,無第三個(gè)參數(shù)
例如:
- local f = openfile("d:\\test\\test\\test.cpp", "rb");
- seek(f, "set", 10);
- seek(f, "cur", 8);
- seek(f, "end");
- local data = read(f, "*l");
- print(data);
- closefile(f);
write(file, data)
功能:向一個(gè)文件中寫入數(shù)據(jù)
參數(shù):文件句柄
參數(shù):要寫入文件的數(shù)據(jù)
例如:
- local f = openfile("d:\\readme.txt", "wb");
- assert(f)
- write(f, "abcde")
- closefile(f)
- writeto
flush(f)
功能: 清除文件緩沖區(qū),文件以寫方式打開時(shí)將緩沖區(qū)內(nèi)容寫入文件
數(shù)學(xué)庫 math庫
abs
功能:取絕對(duì)值
sin
功能:正弦函數(shù)
cos
功能:余弦函數(shù)
tan
功能:正切函數(shù)
asin
功能:反正弦函數(shù)
acos
功能:余弦函數(shù)
atan
功能:反正切函數(shù)
atan2
功能:x / y的反正切值
ceil
功能:不小于x的***整數(shù)
floor
功能:不大于x的***整數(shù)
mod
功能:取模運(yùn)算
frexp
功能:把雙精度數(shù)val分解為數(shù)字部分(尾數(shù))和以2為底的指數(shù)n,即val=x*2n
ldexp
功能:計(jì)算value * 2的n次方
sqrt
功能:開平方函數(shù)
min
功能:取得參數(shù)中最小值
max
功能:取得參數(shù)中***值
log
功能:計(jì)算一個(gè)數(shù)字的自然對(duì)數(shù)
log10
功能:計(jì)算以10為基數(shù)的對(duì)數(shù)
exp
功能:計(jì)算以e為底x次方值
deg
功能:弧度轉(zhuǎn)角度
rad
功能:角度轉(zhuǎn)弧度
random
功能:獲取隨機(jī)數(shù)
randomseed
功能:設(shè)置隨機(jī)數(shù)種子
字符串庫 string庫
strlen(str)
功能:獲得字符串的長度
- strlen("abcdefghijklmn")
- 輸出:14
strsub(str, nStart, nEnd)
功能:截取字符串
- strsub("abcdefghijklmn", 4, 7)
- 輸出:defg
strlower(str)
功能:字符串轉(zhuǎn)小寫
- strlower("AbCdEFg")
- 輸出:abcdefg
strupper(str)
功能:字符串轉(zhuǎn)大寫
- strupper("AbCdEFg")
- 輸出:ABCDEFG
strchar(byte1, byte2, ..)
功能:數(shù)字轉(zhuǎn)字符串
- strchar(97, 98, 99)
- 輸出:abc
strrep(str, nCount)
功能:返回一個(gè)指定數(shù)目拼接在一起的字符串
- strrep("hello", 5)
- 輸出:hellohellohellohellohello
ascii(str)
功能:字符串轉(zhuǎn)數(shù)字
注意:若傳入多個(gè)字符組成的字符串,只返回***個(gè)字符的ascii碼
- ascii("a")
- ascii("abc")
- 輸出:97
strbyte(str)
功能:字符串轉(zhuǎn)數(shù)字
注意:若傳入多個(gè)字符組成的字符串,只返回***個(gè)字符的ascii碼
- strbyte("a")
- strbyte("abc")
- 輸出:97
format(str, "格式化字符串")
功能:返回一個(gè)指定格式的格式化字符串
- format("%s is %s ,has %s apples!", "Henry", "farmer", 19)
輸出:
- Henry is farmer ,has 19 apples!
strfind(str, substr[, nStart])
功能:查找一個(gè)字符串在另一個(gè)字符串中的位置,參數(shù)3可以指定開始查找的位置
- strfind("aaa hello, mike! hello", "hello", 8)
輸出:19 23
gsub(str, perttem, repl[, n])
功能:在str查找等于或類似perttem格式的字符串,用repl替換,參數(shù)4可選,為替換的次數(shù)
注意:該函數(shù)支持字符串匹配操作,返回的第2個(gè)值表示替換了多少次
- gsub("hello, world", "%w+", "xxx")
輸出:
- xxx, xxx 2
調(diào)試庫 debug庫
- getlocal
- getinfo
- setcallhook
- setlinehook
- setlocal
小結(jié):Lua 4.0中關(guān)于函數(shù)學(xué)習(xí)筆記的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!