Appearance
常用函数
基础函数
函数名 | 函数功能示例 |
---|---|
type(v) | 用来判断v的类型, 返回字符串"nil", "number", "string", "boolean", "table", "function", "thread", "userdata" |
tonumber(e [,base]) | 将字符串转换成数字,把e(必须为数字或者是可以转成数字的字符串)转成10进制数字,base为多少进制(可以为2-36),默认为10tonumber('10')10 |
tostring(var) | 将变量转换成字符串,把任意类型的e已适当的方式转成字符串,如果e的原表有__tostring函数,则调用并传入e作为参数,把返回值作为结果返回。math.asin(0.5)0.52359877 |
isboolean(var) | 检查是否为boolean类型 |
isnil(var) | 检查是否为nil |
isstring(var) | 检查是否为字符串类型 |
isinteger(var) | 检查是否为整数类型 |
数学函数
函数名 | 函数功能 | 示例 | 示例结果 |
---|---|---|---|
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.4636476095 |
ceil | 不小于x的最大整数 | math.ceil(5.8) | 6 |
cosh | 双曲线余弦函数 | math.cosh(0.5) | 1.276259652 |
cos | 余弦函数 | math.cos(0.5) | 0.87758256 |
deg | 弧度转角度 | math.deg(math.pi) | 180 |
exp | 计算以e为底x次方值 | math.exp(2) | 2.718281828 |
floor | 不大于x的最大整数 | math.floor(5.6) | 5 |
fmod (mod) | 取模运算 | math.mod(14, 5) | 4 |
frexp | 把双精度数val分解为数字部分(尾数)和以2为底的指数n,即val=x*2n | math.frexp(10.0) | 0.625 4 |
ldexp | 计算value * 2的n次方 | math.ldexp(10.0, 3) | 80 = 10 * (2 ^3) |
log10 | 计算以10为基数的对数 | math.log10(100) | 2 |
log | 计算一个数字的自然对数 | math.log(2.71) | 0.9969 |
max | 取得参数中最大值 | math.max(2.71, 100, -98, 23) | 100 |
min | 取得参数中最小值 | math.min(2.71, 100, -98, 23) | -98 |
modf | 把数分为整数和小数 | math.modf(15.98) | 15 98 |
pow | 把数分为整数和小数 | math.pow(2, 5) | 32 |
rad | 角度转弧度 | math.rad(180) | 3.141592654 |
random | 获取随机数 | math.random(1, 100) | 在使用math.random函数之前必须使用此函数设置随机数种子 |
randomseed | 设置随机数种子 | math.randomseed(os.time()) | 0.5210953 |
sinh | 双曲线正弦函数 | math.sinh(0.5) | 0.5 |
sin | 正弦函数 | math.sin(math.rad(30)) | 15 |
sqrt | 开平方函数 | math.sqrt(16) | 4 |
tanh | 双曲线正切函数 | math.tanh(0.5) | 0.46211715 |
tan | 正切函数 | math.tan(0.5) | 0.5463024 |
字符串函数
序号 | 方法 & 用途 |
---|---|
1 | string.upper(argument): 字符串全部转为大写字母。 |
2 | string.lower(argument): 字符串全部转为小写字母。 |
3 | string.sub(s, i [, j]): s 为要截取的字符串,i 为截取开始位置,j 为截取结束位置,默认为 -1,最后一个字符。 |
4 | string.gsub(mainString,findString,replaceString,num) 在字符串中替换。 mainString 为要操作的字符串, findString 为被替换的字符,replaceString 要替换的字符,num 替换次数(可以忽略,则全部替换),如: string.gsub("aaaa","a","z",3); zzza 3 |
5 | string.find (str, substr, [init, [plain]]) 在一个指定的目标字符串 str 中搜索指定的内容 substr,如果找到了一个匹配的子串,就会返回这个子串的起始索引和结束索引,不存在则返回 nil。 init 指定了搜索的起始位置,默认为 1,可以一个负数,表示从后往前数的字符个数。 plain 表示是否使用简单模式,默认为 false,true 只做简单的查找子串的操作,false 表示使用使用正则模式匹配。 以下实例查找字符串 "Lua" 的起始索引和结束索引位置: string.find("Hello Lua user", "Lua", 1) 7 9 |
6 | string.reverse(arg) 字符串反转 string.reverse("Lua") auL |
7 | string.format(...) 返回一个类似printf的格式化字符串 string.format("the value is:%d",4) the value is:4 |
8 | string.char(arg) 和 string.byte(arg[,int]) char 将整型数字转成字符并连接, byte 转换字符为整数值(可以指定某个字符,默认第一个字符) string.char(97,98,99,100) abcd string.byte("ABCD",4) 68 string.byte("ABCD") 65 |
9 | string.len(arg) 计算字符串长度 string.len("abc") 3 |
10 | string.rep(string, n) 返回字符串string的n个拷贝 string.rep("abcd",2) abcdabcd |
11 | .. 链接两个字符串 print("www.ai-v".."ision.com") www.ai-vision.com |
12 | string.gmatch(str, pattern) 返回一个迭代器函数,每一次调用这个函数,返回一个在字符串 str 找到的下一个符合 pattern 描述的子串。如果参数 pattern 描述的字符串没有找到,迭代函数返回nil for word in string.gmatch("Hello ai vision", "%a+") do print(word) end Hello ai vision |
13 | string.match(str, pattern, init) string.match()只寻找源字串str中的第一个配对. 参数init可选, 指定搜寻过程的起点, 默认为1。 在成功配对时, 函数将返回配对表达式中的所有捕获结果; 如果没有设置捕获标记, 则返回整个配对字符串. 当没有成功的配对时, 返回nil string.match("I have 2 questions for you.", "%d+ %a+") 2 questions string.format("%d, %q", string.match("I have 2 questions for you.", "(%d+) (%a+)")) 2, "questions" |