next (_Table [, _Key ])
Gibt für ein Table _Table
das nächste Key-Value-Paar des Tables, abhängig von _Key
zurück. Ist _Key
nicht angegeben, wird ein beliebiges Key-Value-Paar zurückgegeben. Ist _Table
leer oder das letzte Element erreicht, wird nil zurückgegeben. Die Reihenfolge, in der die Key-Value-Paare des Tables zurückgegeben werden, ist undefiniert und kann jedes mal unterschiedlich sein.
Name | Typ | Beschreibung |
---|---|---|
_Table | Table | Das Table, dessen nächstes Key-Value-Paar zurückgegeben werden soll |
_Key | Zahl oder String | Optionaler Parameter; Wenn angegeben, wird ein nächstes Key-Value-Paar von _Key aus zurückgegeben. Welches das ist, ist undefiniert, allerdings ist der zurückgegebene Key garantiert von _Key verschieden, wenn er nicht nil ist. Wird _Key nicht angegeben, wird ein beliebiges Key-Value-Paar zurückgegeben |
Name | Typ | Beschreibung |
---|---|---|
Key | Zahl, String oder nil | Ein Key im Table _Table . Kann nil sein, falls _Table leer oder das letzte Element erreicht ist |
Value | Beliebig | Der Value, der im Table _Table mit Key assoziiert ist. Kann nil sein, falls _Table leer oder das letzte Element erreicht ist |
Der wichtigste Anwendungsfall von next
ist zu prüfen, ob ein Table leer ist:
function IsTableEmpty(_Table) local Key, _ = next(_Table) return Key == nil end
Außerdem liegt next
dem Iterator zugrunde, der von pairs zurückgegeben wird. Folgende Schleifen sind also äquivalent:
Dictionary = { Computer = "Rechner", Mouse = "Maus", Keyboard = "Tastatur", Screen = "Bildschirm" } -- for-Schleife mit pairs for Key, Value in pairs(Dictionary) do print(Key.." bedeutet "..Value) end -- while-Schleife mit next local Key, Value = next(Dictionary) while Value ~= nil do print(Key.." bedeutet "..Value) Key, Value = next(Dictionary, Key) end
Verwendete Funktionen: