原文引自:https://blog.csdn.net/weixin_30535913/article/details/96012323
LuaStack.lua
local stack = {} stack.__index = stack function stack:new() local temp = {} setmetatable(temp,stack) stack:init() return temp end function stack:init() self.stackList = {} end function stack:reset() self:init() end function stack:clear() self.stackList = {} end function stack:pop() if #self.stackList == 0 then return end return table.remove(self.stackList) end function stack:peek() return self.stackList[self:Count()] end function stack:push(t) table.insert(self.stackList,t) end function stack:Count() return #self.stackList end return stack
模拟测试
package.path = package.path ..';..\\?.lua' luaStack = require "luaStack" --测试代码 --push 数字 stack1 = luaStack:new() stack1:push(1) stack1:push(2) stack1:push(3) while (stack1:Count() > 0) -- lua中只有nil 和 false 为假 do print("stack1 now cotain number:"..stack1:Count()) print("pop top number:"..stack1:pop()) end