Объектно-ориентированный код 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 Реализация IPair

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

Supongo que te gusta

Origin blog.csdn.net/weixin_45136016/article/details/131873574
Recomendado
Clasificación