Lua 常用函数

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]) - 全局替换

byte(string[, index]) - 转换字符串为整数值(可以指定某个字符).

char(asciiCode[, ...]) - 转换整数为相对应的字符

find(string, pattern[, initpos[, plain]]) - 在一个指定的目标字符串中搜索指定的内容(第三个参数为索引),返回其具体位置.

len(string) - 返回当前字符串的字符数

lower(string) - 将字符串的字母转换为小写格式

match(string, pattern[, initpos]) - 与strfind不同的是,macth返回的是具体值,而find返回的是此值的位置

rep(seed,count) - 返回一个字符串种子副本的个数

sub(string, index[, endIndex]) - 返回字符串指定位置的值.

upper(string) - 将字符串的字母转为大写格式

tonumber(arg[, base]) - 若参数能转为数字则返回一个数值.可以指定转换的类型.默认为十进制整数

tostring(arg) - 转换参数为字符串

下面的字符串函数是wow独有的

trim(string) - 去除字符串前后空格

split(delimiter, string) - 分割字符串

join(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]) - 对一个数组进行排序, 还可以指定一个可选的次序函数

insert(table[, pos], value) - 将一个元素插入指定的位置(默认在表的最后)

remove(table[, pos]) - 删除指定位置的元素(默认表最后一个)

Bit Functions

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的整数余数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容