Lua语言的函数的调用介绍

outputo-20210606-151757-247-kqwn.png

         Lua 语言不是一个纯粹的面向对象编程语言,函数仍然是对语句和表达式进行抽象的主要方法。我们对Lua语言和其他语言不同之处进行介绍。首先通过Lua实现一个简单Web框架的GET方法来介绍Lua函数的使用。这个例子还涉及函数闭包、Table数据结构、函数传参这3个特性。Web框架将一些通用的代码封装成特定的库或函数集合,Web框架中最常见的功能就是将URL路由与特定的函数进行绑定关联。

Lua库功能。

这些功能是Lua编程语言的一部分。单击此处了解更多信息。

assert-检查一个值是否为零,如果不为零(如果调试命令在wow.exe中打开),显示对话框并输出错误的调试信息。

垃圾收集器()-垃圾收集器。(添加到1.10.1中)

日期(格式、时间)-返回当前用户机器的时间。

错误(错误信息,等级)-当错误发生时,输出定义的错误信息。用pcall()(见下文)捕捉错误。

gcinfo()-返回所用插件的存储器(kb)和当前垃圾收集器(kB)。

Getfenv(函数或整数)-返回获取函数的堆栈结构或堆栈级别。

Getmetatable-获取当前元表或用户数据对象。

Loadstring("lua代码")-解析字符串中的lua代码块,并将结果返回函数。

next(table,index)-返回下一个键,一对表格。可以通过整个表格。

保护通话(func,arg1,arg2...)-执行函数内容,捕捉所有异常和错误。

选择(索引、列表)-返回列表中商品的价值或项目的索引值。

Setfenv(函数或整数,表格)-设置获取函数的堆栈结构或堆栈级别。

设定元表或当前表的用户数据对象。

时间表-从unix返回时间值。

确定当前变量的类型,如number、string、table、function或userdata。

打开包装(桌子)-打开包装桌。返回当前表格中的所有值。

Xpcall(func,err)-返回一个布尔值,它表示已经成功执行的函数和调用失败的错误信息。另外,它运行函数或者返回错误值。

数学函数。

这些表函数也可以参考Lua函数库(都是从数学开始的。更多信息请参考数学库)。

三角函数无参考,包括角度->弧度转换。雪版角度,Lua标准数学库弧度。

绝对值-返回当前值的绝对值。

acos(value)-余弦。

Asin(值)-返回角度值的反正弦值。

Atan(值)-返回切回角度值。

Atan2(y,X)-返回Y/X的反正切角度。

ceil(value)-无论小数点后的数字是多少,整数部分都会变成1。

Cos(度)-余弦值返回角度。

度(弧度)-弧度转换角度。

exp-返回该值的指数值。

floor-返回该值的整数值。

frexp-返回当前数字小数点后的位数。

Ldexp(值,倍数)-输出倍数。

标志(值)-返回该值的自然对数(基于e)

Log10(值)-返回数为10的值。

最大值([,值...])-在一堆值中找到最大值。

最小值(值[,值...])-在一堆值中找到最小值。

Mod(值,模数)-返回该值的余量。

弧(度)-弧角。

Random([lower,]upper)-返回随机数(可选边界为整数值)

随机种子-为伪随机数字生成器设置种子。

正弦值(度)-返回当前角度的正弦值。

sqrt-返回一个数字的平方根值(例如,100平方根为10)

角度(度)-返回当前角度的切割线。

字符串库。

Lua字符串库用Lua字符串库(均以字符串开头)。更多信息,请参考字符串库)

格式-格式字符串。

Gsub(字符串,模式,替换[,限制计数])-全球替换。

Strbyte(string[,index])-将字符串转换为整数值(可指定字符)。

Strchar(asciiCode[...])-将整数转换成相应的字符。

(string,pattern[,initpos[,plain])-在指定的目标字符串中搜索指定的内容(第三个参数是index),然后返回到指定的位置。

返回当前字符串中的字符数。

字符串-将字符串的字母转换成小写格式。

StrMatch(string,pattern[,initpos])-与strfind不同,macth返回特定值,而find返回该值。

返回字符串的种子复制数。

Strsub(string,index[,endindex])-返回字符串指定位置的值。

字符串-将字符串的字母转换成大写字母。

tnumber(arg[,base])-如果参数可以转换成数字,则返回一个值。您可以指定转换类型。默认值为十进制整数。

tostring为字符串。

下面的字符串函数是wow特有的。

Strtrim(字符串)-删除字符串前后的空格。

Strsplit(分隔符,字符串)-分割字符串。

Strjoin(分隔器、字符串、字符串[...])-根据分隔器连接字符串。

列表函数。

此table函数还可引用Lua表库(均以Table开头),详情请参考表库f)。

众所周知,很多手表都是设计成只有数字索引的,从1开始就没有结尾(比如like{[1]="foo",[3]="bar"}-[2]是零值,因为不存在)。工作时和其他手表没什么区别,但可能会产生意想不到的结果。写lua的时候,

Foreach(表格、函数)-为表格中的每个元素执行一个函数。

Foreachi(table,function)-为表格中的每一个元素执行函数,并按顺序访问它们(不推荐使用ipairs)

getn(table)-当它被用作聊天表时,它会回到当前表格的大小。如今已放弃,可直接使用#符号,用#(table)代替table.getn(table)

ipairs-返回迭代整数遍历。

pairs-返回迭代遍历。

排序(表[,comp])-对数组进行排序,并选择指定一个顺序函数。

t插入(表[,pos],值)-将元素插入指定位置(默认位于表末端)

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

位函数。

包括LuaBitLib库在内的魔兽世界(都是从bit开始的。就像c的位操作一样,位操作库并非Lua标准函数库的一部分,但已应用于WoW1.9。

bit.bnot(a)-返回a的代码。

Bit.band(w1...)-返回w的位置和。

Bit.bor(w1...)-返回w位或。

Bit.bxor(w1...)-按位异或返回w。

移动(A,B)-返回A,向左移动到B。

有点儿rshift(a,b)-逻辑右偏移量返回b位。

bit.arsshift(a,b)-算术偏移量返回b位。

Bit.mod(a,b)-返回A除以B的整数余量。

Lua是一种脚本语言这些功能比较你的数据结构非常慢。除非你有一个非常大的数据库,否则你需要保护RAM,并将你的信息保存在几个或单个变量中。

分享: