Garry's Mod Wiki

Stack

An object returned by util.Stack.

Like a Lua table, a Stack is a container. It follows the principle of LIFO (last in, first out).

The Stack works like a stack of papers: the first page you put down (push) will be the last one you remove (pop). That also means that the last page you put down, will be the first to be removed.

Methods

any Stack:Pop( number amount = 1 )
Pop an item from the stack
table Stack:PopMulti( number amount = 1 )
Pop an item from the stack
Stack:Push( any object )
Push an item onto the stack
number Stack:Size()
Returns the size of the stack
any Stack:Top()
Get the item at the top of the stack

Example

local NewStack = util.Stack(); -- Creating a Stack NewStack:Push("Hello World!") -- Push "Hello World!" onto the stack NewStack:Push(print) -- Push the print function onto the Stack local PrintFunc = NewStack:Top() -- Get the print Function NewStack:Pop() -- Remove the print Function from the stack PrintFunc(NewStack:Top()) -- print "Hello World!" NewStack:Pop() -- Remove "Hello World!"
Output: Hello World!