PICO-8 Wiki
Register
(On second thought, I'll put it in Setmetatable)
Tag: Visual edit
(updates to match the ipairs() page I just added)
Line 4: Line 4:
 
|tbl||The table.
 
|tbl||The table.
 
}}
 
}}
The <code>pairs()</code> function is used exclusively with <code>for...in</code> to iterate over all elements in a table. It emits the key and value together, which you can assign to variables in the <code>for</code> loop:
+
The <code>pairs()</code> iterator function is used exclusively with <code>for...in</code> to iterate over all elements in a table. It emits the key and value together, which you can assign to variables in the <code>for</code> loop:
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
 
for k, v in pairs(tbl) do
 
for k, v in pairs(tbl) do
Line 11: Line 11:
 
</syntaxhighlight>
 
</syntaxhighlight>
   
<code>pairs()</code> returns every value in the table, not just those with sequential indexes. It can return keys and values for tables being used as mappings (dictionaries) or objects.
+
This iterator produces every value in the table, not just those with sequential indices. It can produce keys and values for tables being used as mappings (dictionaries) or objects.
   
  +
Be warned that results are not produced in any guaranteed order. Some small tables may seem to iterate in order, but that is purely coincidental behavior which should ''not'' be relied upon.
<code>pairs()</code> does not guarantee the order in which the results are returned.
 
   
 
== Examples ==
 
== Examples ==
Line 42: Line 42:
 
* [[Del|<code>del()</code>]]
 
* [[Del|<code>del()</code>]]
 
* [[Foreach|<code>foreach()</code>]]
 
* [[Foreach|<code>foreach()</code>]]
  +
* [[IPairs|<code>foreach()</code>]]
 
* [[Next|<code>next()</code>]]
 
* [[Next|<code>next()</code>]]
 
[[Category:Reference]]
 
[[Category:Reference]]

Revision as of 11:31, 25 March 2020

pairs( tbl )
Returns an iterator of key-value pairs for all elements in a table, for use with for...in.
tbl
The table.

The pairs() iterator function is used exclusively with for...in to iterate over all elements in a table. It emits the key and value together, which you can assign to variables in the for loop:

for k, v in pairs(tbl) do
  -- ...
end

This iterator produces every value in the table, not just those with sequential indices. It can produce keys and values for tables being used as mappings (dictionaries) or objects.

Be warned that results are not produced in any guaranteed order. Some small tables may seem to iterate in order, but that is purely coincidental behavior which should not be relied upon.

Examples

t = {111, 222, 333}
for k, v in pairs(t) do
  print(k..': '..v)
end
-- 1: 111
-- 2: 222
-- 3: 333

t = {n=42, x=100, y=200}
for k, v in pairs(t) do
  print(k..': '..v)
end
-- x: 100
-- y: 200
-- n: 42

See also