======unpack======
''unpack (_Table)'' \\
Gibt für ein **[[ scripting:tutorials:level1:tables#tables_als_listen |numerisches Table]]** ''_Table'' alle Werte (einzeln) zurück.
===Parameter===
^Name^Typ^Beschreibung^
| **_Table** | Table | Ein numerisches Table |
===Rückgabewerte===
^Name^Typ^Beschreibung^
| **Wert1** | - | Erster Wert im Table ''_Table'' (also ''_Table[1]'') |
| **Wert2** | - | Zweiter Wert im Table ''_Table'' (also ''_Table[2]'') |
| ... | | |
| **Wertn** | - | Letzter Wert im Table ''_Table'' (also ''_Table[table.getn(_Table)]'') |
----
===Beispiel===
Wie andere [[ scripting:tutorials:level2:functions#mehrere_rueckgabewerte |Funktionen mit mehreren Rückgabewerten]] auch können mit ''unpack'' einzelne Variablen beschrieben werden. Dazu ist es allerdings notwendig, die Größe des Tables schon im Voraus zu kennen.
Numbers = {47, 11}
Number1, Number2 = unpack(Numbers)
print(Number1) -- 47
print(Number2) -- 11
''unpack'' gibt **nur den numerischen Anteil** vom Eingabetable ''_Table'' zurück:
Position = { X = 13, Y = 37, 47, 11 }
Number1, Number2 = table.unpack(Position)
print(Number1) -- 47
print(Number2) -- 11
''unpack'' wird oft dafür verwendet, Parameter an Funktionen zu übergeben, die zuvor in einem Table gespeichert wurden. Im Beispiel wurden die obere und untere Grenze für eine Zufallszahl in einem Table gespeichert. "Ausgepackt" können sie für ''math.random'' verwendet werden:
-- Liefert eine Zufallszahl zwischen 5 und 42
RandomNumberBounds = {5, 24}
RandomNumber = math.random(unpack(RandomNumberBounds))
\\
Verwendete Funktionen:
* [[ scripting:reference:standard_library:table:getn |table.getn (_a)]]
* [[ scripting:reference:standard_library:math:random |math.random (_a)]]