Erste Schritte in Lua - Tabellen (Datensätze)


Sie sind hier: LuaTabellen



Tabellen und Listen

Lua-Tabellen sind Datensätze.1

Im Gegensatz zum gewohnten Tabellenbegriff sind sie keine Tabellen mit mehreren Zeilen und Spalten, sondern zweispaltige Tabellen mit Schlüssel und Wert.

Schlüssel Wert
name Gödel
Geburtsjahr 1906
Todesjahr 1978

Tabellen anlegen und füllen

Beispielprogramm table_1.lua
goedel = {}
goedel.name = "Kurt Gödel"
goedel.geburtsjahr = 1906
goedel.todesjahr	= 1978

print( goedel )
print( goedel.name )
Das Ergebnis:
table: 00329E20
Kurt Gödel

Beispielprogramm table_2.lua
goedel = {
	name = "Kurt Gödel",
	geburtsjahr = 1906,
	todesjahr	= 1978,
}

print( goedel )
print( goedel.name )
Das Ergebnis:
table: 00329E20
Kurt Gödel

Beispielprogramm table_3.lua
goedel = {}
goedel.name = "Kurt Goedel"
goedel.geburtsjahr = 1906
goedel.todesjahr	= 1978
goedel[1] = 'Über die Vollständigkeit der Axiome des logischen Funktionenkalküls.'
goedel[2] = 'Diskussion zur Grundlegung der Mathematik, Erkenntnis'

print( goedel )
print( goedel.name )
print( goedel[1] )
Das Ergebnis:
table: 00329E20
Kurt Goedel
Über die Vollständigkeit der Axiome des logischen Funktionenkalküls.

Beispielprogramm table_4.lua
goedel = {}
goedel.name = "Kurt Gödel"

print( goedel )
print( goedel.name )
print( goedel["name"] )
Das Ergebnis:
table: 00329E20
Kurt Gödel
Kurt Gödel

Geschachtelte Tabellen

Tabellenwerte können wieder Tabellen sein.

Beispielprogramm table_5.lua
goedel = {}
goedel.name = "Kurt Gödel"
goedel.geburt	= {}
goedel.geburt.jahr		= 1906
goedel.geburt.monat	= 4
goedel.geburt.tag		= 28

goedel.gestorben			= {}
goedel.gestorben.jahr		= 1978
goedel.gestorben.monat	= 1
goedel.gestorben.tag		= 14

print( goedel )
print( goedel.name )
print( goedel.geburt )
print( goedel.geburt.jahr )
Das Ergebnis:
table: 00329E20
Kurt Gödel
table: 00329FD0
1906

Tabellen durchlaufen

Die For-Schleife ermöglicht ein durchlaufen von Tabellen.

            for schluessel, wert in pairs(table) do
                            -- Block
            end

Beispielprogramm table_6.lua
personen = {}
personen[1] = {
	name = "Kurt Gödel",
	geburtsjahr = 1906,
	todesjahr	= 1978,
}
personen[2] = {
	name = "Maurits Cornelis Escher",
	geburtsjahr = 1898 ,
	todesjahr	= 1972,
}

for variable, person in pairs(personen) do 
	print( variable, person.name )
end
Das Ergebnis:
1	Kurt Gödel
2	Maurits Cornelis Escher

Eine Alternative Syntax ist:

            for schluessel, wert in next, table do
                            -- Block
            end

Beispielprogramm table_6.lua
personen = {}
personen[1] = {
	name = "Kurt Gödel",
	geburtsjahr = 1906,
	todesjahr	= 1978,
}
personen[2] = {
	name = "Maurits Cornelis Escher",
	geburtsjahr = 1898 ,
	todesjahr	= 1972,
}

for variable, person in pairs(personen) do 
	print( variable, person.name )
end
Das Ergebnis:
1	Kurt Gödel
2	Maurits Cornelis Escher