WoW:API wipe: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
(Example first since it's simpler, lays foundation for concepts in Notes)
m (Move page script moved page API wipe to API wipe without leaving a redirect)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{:Lua/Libshortcut|wipe|table.wipe}}
{{wowapi}}
 
 
'''Wipes''' a table of all contents.
'''Wipes''' a table of all contents.
  table = table.wipe(table)
  table = table.wipe(table)
wipe(table)


== Arguments ==
== Arguments ==
:; table : Table - The table to be cleared.
; table : Table - The table to be cleared.


== Returns ==
== Returns ==
:; table : Table - The empty table.
; table : Table - The empty table.


== Example ==
== Example ==
Line 19: Line 18:


== Notes ==
== Notes ==
The difference between ''wipe(table)'' and ''table={}'' is that ''wipe'' removes the contents of the table, but retains the variable's internal pointer.
* While this function returns an empty table, it is not necessary to assign it to a variable.
 
local t = {"stuff"}
t = wipe(t)
print(#t) -- prints 0
local t = {"stuff"}
wipe(t)
print(#t) -- also prints 0
 
* The difference between ''wipe(table)'' and ''table={}'' is that ''wipe'' removes the contents of the table, but retains the variable's internal pointer.


  data={1,2,3}
  data={1,2,3}
Line 36: Line 45:
  assert(#copy2==0)    -- the copy is expectedly empty,
  assert(#copy2==0)    -- the copy is expectedly empty,
  assert(#data==0)    -- and so is the original table.
  assert(#data==0)    -- and so is the original table.
{{LUA}}

Latest revision as of 04:47, 15 August 2023

WoW API < wipe

Wipes a table of all contents.

table = table.wipe(table)
wipe(table)

Arguments[edit]

table
Table - The table to be cleared.

Returns[edit]

table
Table - The empty table.

Example[edit]

local tab = {}
tab.Hello = "Goodbye"
print(tab.Hello) -- print "Goodbye"
tab = table.wipe(tab)
print(tab.Hello) -- print nil

Notes[edit]

  • While this function returns an empty table, it is not necessary to assign it to a variable.
local t = {"stuff"}
t = wipe(t)
print(#t) -- prints 0

local t = {"stuff"}
wipe(t)
print(#t) -- also prints 0
  • The difference between wipe(table) and table={} is that wipe removes the contents of the table, but retains the variable's internal pointer.
data={1,2,3}

copy=data
assert(copy==data)   -- they're the same object
copy={}
assert(copy~=data)   -- they're no longer the same:
assert(#copy==0)     -- the copy is expectedly empty,
assert(#data==3)     -- but the original table remains.

copy2=data
assert(copy2==data)  -- they're the same object
wipe(copy2)
assert(copy2==data)  -- they're still the same object:
assert(#copy2==0)    -- the copy is expectedly empty,
assert(#data==0)     -- and so is the original table.