函数
|
描述
|
例子
|
math.abs(x)
|
返回
x
的绝对值
|
> print(math.abs(13))
13
> print(math.abs(-13))
13
|
math.ceil(x)
|
返回大于或等于
x
的最小整数
|
> print(math.ceil(1.03))
2
> print(math.ceil(-1.03))
-1
|
math.deg(x)
|
返回所给弧度
x
所对应的角度
|
> print(math.deg(math.pi))
180
> print(math.deg(math.pi*2.5))
450
|
math.exp(x)
|
返回
ex
的值
|
> print(math.exp(27))
532048240601.8
|
math.floor(x)
|
返回小于或等于
x
的最小整数
|
> print(math.floor(1.99))
1
> print(math.floor(-1.99))
-2
|
math.fmod(x,y)
|
返回
x
除以
y
得到的余数,你可以用
x%y
得到相同的结果
|
> print(math.fmod(14,3))
2
> print(math.fmod(14,2))
0
|
math.log(x)
|
返回
x
的自然对数
|
> print(math.log(532048240601.8))
27
|
math.log10(x)
|
返回以
10
为底
x
的对数
|
> print(math.log10(100))
2
|
math.max(x,y,z,…)
|
返回参数表中的最大值
|
> print(math.max(100,7,-12))
100
|
math.min(x,y,z,…)
|
返回参数表中的最小值
|
> print(math.min(100,7,-12))
-12
|
math.modf(x)
|
返回两个参数,一个数的整数部分和小数部分
|
> print(math.modf(10.23))
10 0.23
> print(math.modf(7/3))
2 0.33333333333333
|
math.pi
|
数学常数π的值
|
> print(math.pi)
3.1415926535898
|
math.pow(x,y)
|
返回
x
的
y
次方
|
> print(math.pow(2,10))
1024
|
math.rad(x)
|
返回给定的
x
角度所对应的弧度
|
> print(math.rad(180))
3.1415926535898
|
math.random([m[,n]])
|
生成伪随机数,在没有参数时产生
0-1
之间的伪随机小数,如果有
m
则产生
1~m
(包含
m
)的伪随机整数,如果有
n
则生成
m~n
(包含
m
和
n
)的伪随机整数
|
> print(math.random())
0.0012512588885159
> print(math.random(100))
57
> print(math.random(10,20))
12
|
math.randomseed(x)
|
为
Lua
生成一个种子来产生一系列的伪随机数,一个相同的种子产生出来的序列总是相同的
|
> math.randomseed(1000)
> print(math.random(100))
11
> print(math.random(100))
26
--
重置种子
> math.randomseed(1000)
> print(math.random(100))
11
> print(math.random(100))
26
|
math.sqrt(x)
|
返回
x
的平方根
|
> print(math.sqrt(169))
13
> print(math.sqrt(2))
1.4142135623731
|
函数
|
描述
|
例子
|
string.len(s)
|
接收一个字符串并返回其长度,空字符串
””
的长度是
0
。
|
> print(string.len("Monkey"))
6
|
string.lower(s)
|
接收一个字符串并返回一份拷贝,当中所有大写字母被转换成小写。
|
> test="Hello World"
> print(string.lower(test))
hello world
|
string.rep(s,n)
|
返回一个字符串,由连续
n
个的字符串
s
组成
|
> print(string.rep("Hello",3))
HelloHelloHello
|
string.reverse(s)
|
将
s
逆序之后返回
|
> print(string.reverse("Hello"))
olleH
|
string.sub(s,i[,j])
|
返回
s
的一个子串,下标从
i
开始直到
j
(
Lua
中字符串的下标位置起始值为
1
),如果没有
j
,则截取到字符串的尾部。
i
和
j
都可以是负数,如果是负数,则表示从尾部向头部计算坐标(最后一个字符的下标是
-1
,以此类推)
|
> print(string.sub("Hello",3,5))
llo
> print(string.sub("Hello",2))
ello
> print(string.sub("Hello",-5,-3))
Hel
|
string.upper(s)
|
接收一个字符串并返回一个副本,当中所有小写字母都被转换成大写字母。
|
> print(string.upper("Hello World"))
HELLO WORLD
|
命令
|
结果
|
print(string.format(“%c",83))
|
S
(
默然说话:%c表示以字符的形式显示后面那个数字,而大写S的ASCII编码就是83)
|
print(string.format("%+d",17.0))
|
+17
(
默然说话:%d表示以整数的方式来显示后面那个数字,+号表示在后面的那个数字为正数时显示正号
)
|
print(string.format("%05d",17.0))
|
00017
(
默然说话:%d表示以整数的方式来显示后面那个数字,5表示后面那个数字的显示要占用5个字符的位置,0表示如果有多余的位置用0进行填充。
)
|
print(string.format("%o",17.0))
|
21
(
默然说话:%o表示以八进制的方式来显示后面那个数字
)
|
print(string.format("%u",17.5))
|
17
(
默然说话:%u表示以无符号整数的方式来显示后面那个数字
)
|
print(string.format("%x",15.5))
|
f
|
print(string.format("%X",15.5))
|
F
|
元字符符号
|
描述
|
x
|
字符
x
本身
|
.(
句点)
|
任意字符
|
%a
|
任意字母
|
%c
|
任意控制字符
|
%d
|
任意数字
|
%l
|
任意小写字母
|
%p
|
任意括号字符
|
%s
|
任意空白字符
|
%u
|
任意大写字母
|
%w
|
任意数字或字母
|
%x
|
任意十六进制数字
|
%z
|
表示
0
的字符
(
在计算机里表示
0
个字符不止一个,有很多的,这里就不多介绍了以免引起混乱
)
|
[
字符集合]
|
任意在集合中的字符,可以由一个减号(
-
)来表示某个顺序的符号
|
[^
字符集合]
|
任意不在集合中的字符。
|
类别
|
描述
|
单个元字符
|
任意该元字符所匹配的一个字符位置
|
单个元字符,后接*
|
0
个或多个字符位置。匹配尽可能长的序列
|
单个元字符,后接+
|
1
个或多个字符位置。匹配尽可能长的序列
|
单个元字符,后接-
|
0
个或多个字符位置,匹配尽可能短的序列
|
单个元字符,后接?
|
0
个或
1
个字符位置。
|
%n
|
n
可以是
1-9
之间的数字,表示第
n
个可匹配的子串
|
%bxy
,x
和y
为不同的字符
|
以
x
开头,
y
结尾的字符串。
|
类别
|
描述
|
1
到多个非空字符,
|
%S+
|
以MYADDON:
开头的字符串
|
^MYADDON:(.+)
|
匹配1
到多位的数字,这个数字可以有小数点,也可以没有
|
(%d+%.?%d*)
|
匹配一个赋值语句,
|
(
%w+
)
=(%S+)
|
单个元字符,后接?
|
1
个字符位置。
|
%n
|
n
可以是
1-9
之间的数字,表示第
n
个可匹配的子串
|
%bxy
,x
和y
为不同的字符
|
以
x
开头,
y
结尾的字符串。
|
别名
|
原函数
|
别名
|
原函数
|
abs
|
math.abs
|
tan
|
math.tan
|
acos
|
math.acos
|
format
|
string.format
|
asin
|
math.asin
|
gmatch
|
string.gmatch
|
atan
|
math.atan
|
gsub
|
string.gsub
|
atan2
|
math.atan2
|
strbyte
|
string.byte
|
ceil
|
math.ceil
|
strchar
|
string.char
|
cos
|
math.cos
|
strfind
|
string.find
|
deg
|
math.deg
|
strlen
|
string.len
|
exp
|
math.exp
|
strlower
|
string.lower
|
floor
|
math.floor
|
strmatch
|
string.match
|
frexp
|
math.frexp
|
strrep
|
string.rep
|
ldexp
|
math.ldexp
|
strrev
|
string.reverse
|
log
|
math.log
|
strsub
|
string.sub
|
max
|
math.max
|
strupper
|
string.upper
|
min
|
math.min
|
foreach
|
table.foreach
|
mod
|
math.fmod
|
foreachi
|
table.foreachi
|
rad
|
math.rad
|
getn
|
table.getn
|
random
|
math.random
|
sort
|
table.sort
|
Randomseed
|
math.randomseef
|
tinsert
|
table.insert
|
sin
|
math.sin
|
tremove
|
table.remove
|
sqrt
|
math.sqrt
|
|
|
Lua有3个主要的辅助函数库。表库提供了对数组表进行插入、移除和排序的方法。字符串有一些有用的方法来完成诸如将字符串转成小写、大写或者反置的工作。除此之外,本章还介绍了Lua的正则表达式。