Lua学习二

来源:互联网 发布:sql 执行存储过程 编辑:程序博客网 时间:2024/05/16 13:13



函数:
(1)
function MyFunc()
print("hello")
print("world")
end


(2)
function MyFunc(name)
print(name)
end


(3)
function MyFunc(...)
if arg.n == 0
print("arg.n == 0")
else
local index = 1
repeat
print(arg[i])
index = index + 1
until i >arg.n
end
end


返回值:
function Func()
return 2
end


a = Func()
MyFunc(Func())


函数也可以返回多个结果,return d1,d2,d3
Lua可以使用return去调用另一个函数,这可以把return语句作为一个函数的物理结束,运行结束后从栈中被删除;这可以帮你降低栈溢出错误的风险。


标准库:
dofile():载入并立刻执行Lua脚本文件,通常我们用它载入定义函数的文件以备调用,除此之外还可以用来载入数据文件(如游戏存档),或者想立即执行Lua代码。
math.floor(number) --向下取整
math.random() --随机数
math.random(range1,range2)--range1~range2的随机数(包括边界值)
math.randomseed(x) --设置随机数种子
math.min(x,...)


字符处理:
tonumber()
tostring()
string.char(x) --根据ASCII编码返回传入参数对应的字符
string.len(x) --返回字符串长度
string.sub(x,star,end) --返回start到end的字串(可以设置start为负数,end省略,返回末尾的start个字符)
string.format(...,x1...) --格式化字符串
例:
string.format("%d%s",2,"hello")
string.find() --返回第一次出现字符的开始结束位置
例:
myStr = "hello world"
start,end = string.find(myStr,"wor")


例:
filter= "$%d%d.%d%d"
start,end = string.find(myStr,filter) --查找filter格式字符串


string.gsub(src,pattern,replace) --函数返回一个字符串,src字符中满足pattern格式的字符都会被替换成replace。
例:
data = "(309) 555-1234"
data = string.gsub(data,"%(%d%d%d%)","222")
print(data)


gsub()函数,可在最后加一个可选参数,指定替换的次数。
例:
data = "happy,hello,home"
data = string.gsub(data,"h%a+","ffewa",2)
我们查找以h开头的字符,%a+表示任意长度的字母,并在遇到空格或标点符号为止。




table作为数组
例:
table = {}
for index = 1,100 do
table[index] = math.random(1,1000)
end


table.getn(table) --获取table元素个数
table.insert(table,position,val) --未指定位置,添加到末尾,否则插入到指定位置


table引用:
table不仅可以用数字做索引,还可以用其他值。
例:
data = {}
data.name = "hello"
data.dex = math.random(0,1)


多维table:
例:
data = {}
data.name = {}
data.cost = {}
data.name[1] = "hello"
data.name[2] = "world"
data.cost[1] = 1
data.cost[2] = 2


pairs()函数可以遍历table中的每一个元素。(即使不知道table的长度,并返回索引值和元素值,遍历非数字索引非常有用)
例:
name = {"hello","world")
for index,val in pairs(name) do
print(index,val)
end


for index = 1,table.getn(name) do
print(index,table[index])
end




IO基础:
io.open() --有两个参数,文件名和输出方式(w代表写模式,若不存在则创建,否则覆盖)
例:
file = io.open("test.lua","w")
if file ~= nil then
file:write("--Test File")
file:write(string.char(10))
io.close(file)
end
















0 0
原创粉丝点击