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