一、函数
1、lua的函数以function关键字开始,后面是函数名称,然后是参数,最后以end结尾。例如:
function Copy(val1)
............
end
2、lua可以定义不定长的参数列表,使用(...)代替参数列表,此时lua会创建一个名字为arg的局部table变量,用于保存所有调用时传递的参数,以及参数个数(通过arg.n获取)。例如:
function Copy(...)
.............
end
function Copy(val1,val2,...)
..............
end
3、lua的函数可以有多个返回值,每个返回值用逗号隔开。lua另一个特性是使用return去调用另一个函数:
function RoomA()
print("You are in a stone entry room")
print("There is a single oaken door to the east.")
local myInput = io.read()
if myInput == "east" then
return HallA()
else
print("You can't go that way!")
return RoomA()
end
end
二、常用标准库函数
1、assert(myValue)()
该函数可以像处理函数一样运行编译后的lua代码块,只需要传入指向编译后的代码的变量。
2、dofile(filename)
可以载入数据文件或lua脚本文件或者想立即执行的lua代码。
3、数学运算函数
(1)math.floor():向下取整,舍去小数部分,如需四舍五入,可以先将数加上0.5再向下取整。
(2)math.random():无参数时该函数随机生成一个0-1之间的伪随机数,参数传入最小值和最大值时取之间的一个随机数。
(3)math.min()和math.max():取最小值和最大值。
4、字符处理
(1)类型转换函数:tonumber()、tostring()
(2)string.char(n1,n2,...):根据ASCII码返回传入参数对应的字符。
(3)string.len(myString):返回字符串的长度。
(4)string.sub(myString,start,end):返回字符串的子串。注意start为负数的情况表示从字符串的最后往前取start位。
(5)string.format():格式化输出指定字符串。这个函数可以用来连接字符串,如:
string1 = "hello"
string2 = "world"
for indx = 1, 3 do
string1 = string.format("%s%s",string1,string2)
end
print(string1) --prints "helloworldworldworld"
另一个主要的用途是根据参数格式化输出复杂的字符串,如:
myName = "Ted"
myStr = 16
myString = string.format("%s%s%d%s",myName,"'s strength is ",myStr,".")
print(myString)
(6)string.find(sourceString,findString):在sourceString中查找第一个符合findString的字符的位置。