Lua的函数的定义、math数学函数
-
定义函数
function [function name] (param1,param2)
[function code]
--定义一个函数用来求的两个数字的和
function plus (num1,num2)
return num1+num2
end
res = plus(54,12)
print(res)
- Lua内置提供了一些常用函数
1.数学处理的math相关函数
2.字符串处理的string 相关函数
3.表处理的table相关函数
4.文件操作的io相关函数
(1)数学运算函数
print(math.abs(-15)) --取绝对值
print(math.max(11,22,05,655,85)) --求最大的值
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 |
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 | 得到x的y次方 | math.pow(2, 5) | 32 |
rad | 角度转弧度 | math.rad(180) | 3.14159265358 |
random | 获取随机数 | math.random(1, 100) | 获取1-100的随机数 |
randomseed | 设置随机数种子 | math.randomseed(os.time()) | 在使用math.random函数之前必须使用此函数设置随机数种子 |
sinh | 双曲线正弦函数 | math.sinh(0.5) | 0.5210953 |
sin | 正弦函数 | math.sin(math.rad(30)) | 0.5 |
sqrt | 开平方函数 | math.sqrt(16) | 4 |
tanh | 双曲线正切函数 | math.tanh(0.5) | 0.46211715 |
tan | 正切函数 | math.tan(0.5) | 0.5463024 |
(2)字符串处理的相关函数
- string.find() 函数用于在一个给定的目标字符串中搜索一个模式。最简单的模式就是一个单词,它只会匹配与自己完全相同的拷贝。当find找到一个模式后,它会返回两个值:匹配到的起始索引和结尾索引;如果没有找到任何匹配,它就返回nil
eg: local str = "Hello World"
local i, j = string.find(str,"Hello") -- 返回Hello在str中的起始位置和终止位置
print(i, j)
- find的兄弟match函数,string.match与string.find非常相似,它也是用于在一个字符串中搜索一种模式。区别在于,string.match返回的是目标字符串中与模式相匹配的那部分子串,并不是该模式所在的位置。示例代码:
local str = "Hello12345World"
local subStr = string.match(str,"%d+")
print(subStr) --结果为 12345
- 比较全的字符串处理,如下图所示:
Eg: string = "mengmeng xia" --替换字符串用 string.gsub
newstring = string.gsub(string,"xia","da")
print("The new string is",newstring)
(3)Lua所支持的所有字符类. 任意字符
%s 空白符
%p 标点字符
%c 控制字符
%d 数字
%x 十六进制数字
%z 代表0的字符
%a 字母
%l 小写字母
%u 大写字母
%w 字母和数字
(4)模式串中的特殊字符:
( ) . % + - * ? [ ^ $
'%' 用作特殊字符的转义字符
'%.' 匹配点;
'%%' 匹配字符 '%'。