Lua4.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

posted @ 2009-08-12 16:26  忧郁的加菲猫  阅读(5717)  评论(1编辑  收藏  举报