1. Object-oriented
Class = {
}
function Class.new(self, obj)
obj = obj or {
}
self.__index = self
setmetatable(obj, self)
return obj
end
local dog = Class:new()
2. Iterator implementation
2.1 Realize the square of the number 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 Implement 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