Lua Logo
for - Schleife (generische Form)

Mit der numerischen Form konnten wir alle tables in der Art:
    
    myTable[nummer] durchgehen.
    
Mit dieser Art von for - Schleife können wir aber solche tables nicht durchgehen:
    
    myTable.meinName
    
Genau das kann aber die generische Form der for - Schleife.
    
    for variable, wert in pairs(table) do -- die Funktion pairs ist seit Lua 5.1 vorgeschrieben
        -- Block
    end
    
Anmerkung:
Die Funktion pairs(table) hat als Rückgaben zuerst die Funktion next und dann das table.
Sodass man auch schreiben könnte:
    
    for variable, wert in next,table do
        -- Block
    end
    
Diese Schleife geht, ungeachtet ob es sich um ein numerisches table oder ein table mit Namen handelt, jedes Teil des tables durch.

Beispiel: Wir erzeugen ein table mit den Wochentagen
    
    tage = {"Sonntag""Montag""Dienstag","Mittwoch",
                "Donnerstag""Freitag""Samstag"}
    
Jetzt liegt ein table in dieser Form vor:
    
        tage[1] = "Sonntag"
        tage[2] = "Montag"
        tage[3] = "Dienstag"
        tage[4] = "Mittwoch"
        tage[5] = "Donnerstag"
        tage[6] = "Freitag"
        tage[7] = "Samstag"
    
tage ist ein numerisches table

Wir machen eine generische Schleife. Dazu müssen wir nicht wissen, wie groß das table ist. Es wird ja jedes Element durchgegangen.
    
        tagesZahlen = {} -- neues table
        for variable, wert in pairs(tage) do 
            tagesZahlen[wert] = variable
        end
    
Was geschieht:

    
    tagesZahlen.Sonntag = 1
    
    .....
    
    tagesZahlen.Samstag = 7
    


Jetzt prüfen wir das im Editor (wir glauben ja nicht alles)

for generisch

Durch die Schleife:
    
        for i,v in pairs(tage) do
            tagesZahlen[v] = i
        end
    
haben wir gesehen, dass es noch eine andere Form gibt ein table mit Namen zu erzeugen
    
    tagesZahlen.Sonntag    = 1  -- kennen wir
    tagesZahlen["Sonntag"] = 1  -- haben wir jetzt kennen gelernt
    tagesZahlen = {Sonntag = 1-- geht genau so
    


Sehr vielseitig. Nicht wahr? Immer so nutzen, wie wir es gerade brauchen können.
Die Vervielfältigung der auf diesen Seiten enthaltenen Informationen und Grafiken ist untersagt, ausgenommen davon ist sämtlicher auf diesen Seiten angezeigter Quellcode.
Siehe auch: Haftungsausschluss
Copyright © Robert Schmitz 2006