lua基础语法2

-- test 测试lua数据
array = {}

for i = -2,2 do
	array[i] = i*2
end

for i=-2,2 do
	print(array[i])
end

-- 测试多维数组
print("test for mutiArray")
mutiArray={}
for i=1,3 do
	mutiArray[i]={}
	for j=1,3 do
		mutiArray[i][j]=i*j
	end
end

-- 访问多维数组
for i=1,3 do
	for j=1,3 do
		print(mutiArray[i][j])
	end
end

-- 测试迭代器
print("test for iterator")
arrayiter = {"liugao","liugao2"}
for key,value in pairs(arrayiter)
do
	print(key,value)
end

-- 测试无状态的迭代器
function square(iteratorMaxCount,currentNumber)
	if currentNumber<iteratorMaxCount
	then
		currentNumber =currentNumber + 1
	return currentNumber,currentNumber*currentNumber
	end
end

for i,n in square,3,0
do
	print(i,n)
end

print("测试无状态迭代器")

mutistatarr = {"liugao","liugao2"}

function elementIterator (collection)
	local index=0
	local count=#collection
	-- 闭包函数
	return function()
		index = index + 1
		if index <= count
		then
			-- 返回迭代器的元素
			return index, collection[index]
		end
	end
end

for index,element in elementIterator(mutistatarr)
do
	print(index,element)
end

-- 测试table
print("测试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)
do
	print(i,v)
end

print("移除最后一个元素")

table.remove(fruits)
for i,v in pairs(fruits)
do
	print(i,v)
end

print("排序后")
table.sort(fruits)
for i,v in pairs(fruits)
do
	print(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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值