1. 面向对象
Class = {
}
function Class.new(self, obj)
obj = obj or {
}
self.__index = self
setmetatable(obj, self)
return obj
end
local dog = Class:new()
2. 迭代器实现
2.1 实现数字 n 的平方
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
2.2 实现 ipairs
function iter (a, i)
i = i + 1
local v = a[i]
if v then
return i, v
end
end
function ipairs (a)
return iter, a, 0
end