lua基础语法2

来源:互联网 发布:印刷体汉字识别数据集 编辑:程序博客网 时间:2024/06/05 02:12
-- test 测试lua数据array = {}for i = -2,2 doarray[i] = i*2endfor i=-2,2 doprint(array[i])end-- 测试多维数组print("test for mutiArray")mutiArray={}for i=1,3 domutiArray[i]={}for j=1,3 domutiArray[i][j]=i*jendend-- 访问多维数组for i=1,3 dofor j=1,3 doprint(mutiArray[i][j])endend-- 测试迭代器print("test for iterator")arrayiter = {"liugao","liugao2"}for key,value in pairs(arrayiter)doprint(key,value)end-- 测试无状态的迭代器function square(iteratorMaxCount,currentNumber)if currentNumber<iteratorMaxCountthencurrentNumber =currentNumber + 1return currentNumber,currentNumber*currentNumberendendfor i,n in square,3,0doprint(i,n)endprint("测试无状态迭代器")mutistatarr = {"liugao","liugao2"}function elementIterator (collection)local index=0local count=#collection-- 闭包函数return function()index = index + 1if index <= countthen-- 返回迭代器的元素return index, collection[index]endendendfor index,element in elementIterator(mutistatarr)doprint(index,element)end-- 测试tableprint("测试table")fruits={"banana","orange","apple"}-- 返回talbe连接后的字符串print("连接后的字符",table.concat(fruits))-- 指定连接字符print("连接后的字符",table.concat(fruits,": "))-- 测试插入和移除print("测试插入和移除")table.insert(fruits,"mango")for i,v in pairs(fruits)doprint(i,v)endprint("移除最后一个元素")table.remove(fruits)for i,v in pairs(fruits)doprint(i,v)endprint("排序后")table.sort(fruits)for i,v in pairs(fruits)doprint(i,v)end-- 测试元表mytable = setmetatable({key1 = "value1"}, {  __index = function(mytable, key)    if key == "key2" then      return "metatablevalue"    else      return mytable[key]    end  end})print(mytable.key1,mytable.key2)

运行结果如下图:


0 0
原创粉丝点击