lua 面向对象和迭代器实现代码

1. 面向对象

Class = {
    
    }

function Class.new(self, obj)
    -- body
    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

猜你喜欢

转载自blog.csdn.net/weixin_45136016/article/details/131873574