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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Bit Functions

魔兽世界包含了Lua BitLib库(他们都是以 "bit."开头). 与C的位运算相同.位运算库并非Lua标准函数库的一部分, 但是在WoW 1.9中得到了应用

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

Lua是一个脚本语言, 使用这些函数来对你的数据结构进行比对是十分慢的. 除非你有一个非常大的数据库以及需要保护的RAM使用, 保存你的信息到几个或个别的变量中.

(0)

相关推荐

  • Nginx+lua 实现调用.so文件

    最近在和智能硬件部门一起,做一个室内定位的服务,该服务根据手机端传过来的beacon设备列表,根据一定的算法计算出具体的商场,并将商场ID和beason设备列表作为参数,调用.so文件中的计算方法,得出位置数据(坐标:x.y.z),返回给手机端. 因为服务对QPS要求比较高,并且都是纯查询操作,于是决定使用Nginx+lua+Redis的架构(该架构在公司内部已成主流,比较成熟).下面我将对lua调用.so文件的方式,做一下介绍. lua调用.so文件,主要有两种方式: 1.Lua直接调用动态链

  • Lua教程(十六):系统库(os库)

    Lua为了保证高度的可移植性,因此,它的标准库仅仅提供了非常少的功能,特别是和OS相关的库.但是Lua还提供了一些扩展库,比如Posix库等.对于文件操作而言,该库仅提供了os.rename函数和os.remove函数. 1. 日期和时间: 在Lua中,函数time和date提供了所有的日期和时间功能. 如果不带任何参数调用time函数,它将以数字形式返回当前的日期和时间.如果以一个table作为参数,它将返回一个数字,表示该table中所描述的日期和时间.该table的有效字段如下: prin

  • Lua中的一些常用函数库实例讲解

    前言 这篇文章将会来一些比较轻松的内容,就是简单的介绍一下Lua中几个常用的库.简单的说就是几个API的介绍.所以说,看起来比较容易,也没有多大的分量.就是纯粹的总结.使用库就是为了方便我们的开发,提高开发效率,同时也能保证代码的质量.希望大家以后也不要重复造轮子了. 数学库 数学库(math)由一组标准的数学函数构成.这里主要介绍几个常用的函数,其它的大家可以自行百度解决. 三角函数(sin,cos,tan--) 所有的三角函数都使用弧度单位,可以用函数deg(角度)和rad(弧度)来转换角度

  • Lua中os库详细介绍

    这个库通过表os实现 os.clock () 功能:返回一个程序使用CPU时间的一个近似值 例如: 复制代码 代码如下: local x = os.clock(); print(os.clock()) local s = 0; for i = 1, 100000000 do       s = s + i; end print(string.format("elapsed time : %.2f\n", os.clock() - x)); 输出: 复制代码 代码如下: 0 elapse

  • Lua中的数学库总结

    Lua5.1中数学库的所有函数如下表: math.pi 为圆周率常量 = 3.14159265358979323846 abs 取绝对值 math.abs(-15) 15 acos 反余弦函数 math.acos(0.5) 1.04719755 asin 反正弦函数 math.asin(0.5) 0.52359877 atan2 x / y的反正切值 math.atan2(90.0, 45.0) 1.10714871 atan 反正切函数 math.atan(0.5) 0.463647609 c

  • 简介Lua脚本与Redis数据库的结合使用

    可能你已经听说过Redis 中嵌入了脚本语言,但是你还没有亲自去尝试吧?  这个入门教程会让你学会在你的Redis 服务器上使用强大的lua语言. Hello, Lua! 我们的第一个Redis Lua 脚本仅仅返回一个字符串,而不会去与redis 以任何有意义的方式交互. 复制代码 代码如下: local msg = "Hello, world!" return msg 这是非常简单的,第一行代码定义了一个本地变量msg存储我们的信息, 第二行代码表示 从redis 服务端返回msg

  • Lua中的常用函数库汇总

    lua库函数 这些函数都是Lua编程语言的一部分, 点击这里了解更多. assert(value) - 检查一个值是否为非nil, 若不是则(如果在wow.exe打开调试命令)显示对话框以及输出错误调试信息 collectgarbage() - 垃圾收集器. (新增于1.10.1) date(format, time) - 返回当前用户机器上的时间. error("error message",level) - 发生错误时,输出一条定义的错误信息.使用pcall() (见下面)捕捉错误

  • JavaScript常用工具函数库汇总

    对象或数组的深拷贝 /** * 对象或数组的深拷贝 * @param {*} cloneObj 被克隆的对象 * @param {*} targetObj 克隆的目标对象 * @param {*} isOverride 若属性重复,是否覆盖被克隆对象的属性 */ function deepClone(cloneObj, targetObj, isOverride = true) { const _toString = Object.prototype.toString if (_toString

  • C++ 中的Swap函数写法汇总

    swap函数几乎是所有初学者都写过的一个最基本的函数之一,通常是用它来了解函数概念.形参与实参.引用和指针.然而,这个极为基础的函数却有着非常重要的作用.正因为它的重要性.普遍性,意味着swap函数必须有着极高的安全性.本文给大家介绍C++ 常用编程--Swap函数有几种写法? 在说C++模板的方法前,我们先想想C语言里面是怎么做交换的. 举个例子,要将两个int数值交换,是不是想到下面的代码: void swap(int&a , int &b) { int t = a; a=b; b=t

  • Lua中调用C++函数示例

    Lua当然也能够调用C中定义的函数.一个平均数的例子,解释一下.    下面给出的C++函数average()演示了如何接受多个参数且返回超过一个值. 1.lua_gettop函数返回栈顶的索引值.因为在Lua中栈是从1开始编号的,因此该函数获得的值就是参数的个数. 2.在for循环中计算所有参数之和. 3.调用lua_pushnumber()将参数的平均值压栈.  4.最后,函数返回1,说明有一个返回值在栈中. 现在C++函数已经被定义好了,我们必须将它告诉Lua解释器.这将在main函数中初

  • Java常用开源库汇总

    Java的经久不衰,很大程度上得益于Java的生态好.在日常开发中,我们也会经常使用到各种开源库和工具类,为了避免重复造轮子,本文将贴出工作及学习中会用到的部分开源库和工具类.Java的生态实在太大,这里只能列举一部分.如果你对此感兴趣,不妨去读读他们的源码. HTML解析器jsoup 1.1 介绍 jsoup(GitHub地址.中文文档)是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方

  • 推荐ASP中VBScript常用函数

    /*-------------------ASP文档参考集-----------------------*/ *-->作者:草履虫 *-->时间:2007-4.28---2007-4.30(原来是自己编写的手册,现在发在这里) *-->联系:caolvchong@gmail.com *-->文档功能: 1.复习了ASP,加深了对ASP结构的理解和ASP的体会 2.可以用来做ASP参考,自己写的,参考起来更方便 这是第五部分:ASP中VBScript常用函数 /*----------

  • Lua中调用C++函数实例

    到这为止,大家对Lua和C++之间的通信应该有些熟悉了,今天我们来介绍最后一个操作. (旁白:什么?最后一个?要结束了么?太好了~!) 上一章传送门:http://www.jb51.net/article/55097.htm 1. Lua调用C++的函数 Lua要调用C++的函数还是蛮方便的,首先,我们来创建一个c++函数先: 复制代码 代码如下: public: static int getNumber(int num); int HelloLua::getNumber( int num )

  • 浅谈头文件algorithm中的常用函数

    一.非修改性序列操作(12个) 循环         对序列中的每个元素执行某操作         for_each() 查找         在序列中找出某个值的第一次出现的位置         find() 在序列中找出符合某谓词的第一个元素     find_if() 在序列中找出一子序列的最后一次出现的位置         find_end() 在序列中找出第一次出现指定值集中之值的位置     find_first_of() 在序列中找出相邻的一对值         adjacent_

  • MySQL中的常用函数

    在MySQL中,函数不仅可以出现在select语句及其子句中,而且还可以出现在update.delete语句中. 常用的函数有: 1. 字符串函数:主要用于处理字符串. 2. 数值函数:主要用于处理数字. 3. 日期和时间函数:主要用于处理日期和事件. 4. 系统信息函数:获取系统信息. 1. 使用字符串函数: 虽然每种数据库都支持SQL,但是每种数据库拥有各自所支持的函数. 1.1 合并字符串函数concat() 和 concat_ws(): 在MySQL中可以通过函数concat()和con

  • 详解python中的Turtle函数库

    python对函数库的引用方式 1.import <库名> 例如:import turtle 如果需要使用库函数中的函数,需要使用:<库名>.<函数名> 例如: import turtle turtle.fd(100) 2.from <库名> import <函数名> from <库名> import  *, 使用这种方式时,直接使用<函数名> 例如:  >>>from turtle import *  

随机推荐