089 80919779
hello@spielprinzip.com

Einführung in Lua: Die Basics

von Bernd Fischer am 31.07.2019 in Lua
Einführung in Lua: Die Basics

Lua ist eine imperative Skriptsprache, die 1993 von der Computer Graphics Technology Group der Päpstlichen Katholischen Universität von Rio de Janeiro in Brasilien entwickelt wurde. Sie wird gerne als embedded-Sprache genutzt, es ist aber auch durchaus möglich, eigenständige Programme mit Lua zu schreiben. Durch eine API lassen sich zur Laufzeit C-Programme einbinden, was sie durchaus für hochperformante Arbeiten nützlich macht.

In dieser Einführung zeigen wir die allgemeine Syntax der Sprache anhand von Beispielen. Wie immer verweisen wir für tieferes Verständnis auf die offizielle Lua-Doku. Im zweiten Teil der Lua-Einführung behandeln wir Funktionen und Kontrollstrukturen. In den folgenden Beiträgen wird es um Tables, Errorhandlung und um das Entwickeln und Einbinden von einem einfachen C-Modul gehen.

Für die ersten Schritte reicht der offizielle interaktive Online-Interpreter aus. Für komplexere Aufaben lohnt es sich, Lua lokal zu installieren. Im Web finden sich zahllose Tutorials, die dieses Thema behandeln.

Allgemeine Merkmale

  • dynamische Typisierung
  • plattformunabhängig (Bytecode)
  • theoretisch objektorientiert
  • Garbage Collection
  • unterstützt einen interactive Mode
  • Paketmanager Luarocks
  • no batteries included

Datentypen

  • nil
  • boolean
  • number (integer, float)
  • string
  • function
  • userdata
  • thread
  • table (Datenstruktur)

Einführung in die Sprache

Kommentare

Wir unterscheiden zwischen einzeiligen und mehrzeiligen Kommentaren.


-- das ist einzeiliger Kommentar

--[[So erzeugt man einen mehrstelligen Kommentar. Sehr einfach, aber ungewöhnlich.--]]

Variablenzuweisung

Lua typisiert dynamisch, unterstützt also das Duck-Typing-Konzept. In Lua ist alles ein Wert, kann also einer Variablen zugewiesen werden. So kann zum Beispiel auch eine Funktion einer Variablen zugewiesen werden. Variablen sind in Lua global, es sei denn, sie werden mit dem Schlüsselwort local deklariert. In diesem Falle sind sie nur in dem Block verfügbar, in dem sie deklariert worden sind, z.b. einer Funktion.

Wie die meisten Skriptsprachen referenziert die Variable nicht direkt auf den (virtuellen) Speicher, sondern in eine Art Objekt (Lua ist intern table-orientiert).

-- einfache Zuweisungen

a = 3 --wir weisen der Variablen a den Wert 3 zu
print( type(a) ) -- Datentyp prüfen: number

country = "Germany" -- einfache Strinzuweisung

p = a / 2 -- zwei Integer dividiert: 1.5

local c = "orange" -- Variable c hat den Stringwert "orange"
local c = 'orange' -- geht auch mit einfachen Anführungszeichen
local c = 3 -- c ist jetzt drei dank dynamischer Typisierung

Mehrzeilige Strings

q = [[ das ist ein 
mehrzeiliger 
string ]]

boolsche Werte, nil

isTrue = true -- isTrue ist jetzt true
isTrue = soWhat -- nicht existente Varialbe soWhat ergibt nil
print(isTrue) --nil

i = 3 -- i is true
i = 0 -- i is true
if i then print("i ist wahr") end

Inkrement, Dekrement

i = 1
i++ -- gibt es in Lua nicht
i-- --gibt es in Lua auch nicht
i = i+1 -- ist der richtige Weg

Table

Tabellen sind die einzige in Lua verfügbare integrierte Datenstruktur. Sie ähneln assoziativen Arrays in PHP, Hashes in Perl oder Listen in Python.

t = {"Blaubeere", "Waldbeere", "Superbeere"} --table t mit vordefinierten werten
print t[2] -- wie in vielen Sprachen greifen wir so auf den index zu

pets = {} --Zuweisen eines leeren Tables an die Variable pets
pets[0] = "Maus" --index 0 referenziert auf String "Maus"
pets[1] = "Ziege" --index 1 referenziert auf String "Maus"

Table Indizies

pets = {}
pets = {"Maus", "Ziege", "Fisch"}
print( pets[0] ) -- nil, da in der Lua der Index im Gegensatz zu vielen anderen Sprachen bei 1 anfängt

pets = {}
pets["fische"] = {"Forelle", "Hai", "Goldfisch"} -- verschachtelte Tabelle
print( pets["fische"][1] ) --Forelle

Über den Autor:
Bernd Fischer ist seit 18 Jahren freiberuflicher Web-Entwickler, IT-Berater und SEO-Experte. Er gibt auch Kurse rund um die Themen Python, Programmierung, Datenbanken und Software-Lösungen.

0 Kommentare

Kommentar schreiben

Vielen Dank für Ihren Kommentar! Zur Zeit prüfen wir ihn, und schalten ihn später frei!

DSGVO CHECK

ab 70,- €

  • Cookie Check
  • Karten Check
  • Font Check
  • Captcha Check
  • Affiliate Check

* Hinweis: Spielprinzip ist keine Rechtsanwaltskanzlei! Wir geben keine Gewähr auf Rechtsgültigkeit. Wir empfehlen in jedem Fall, einen Anwalt zu konsolidieren!

Sie möchten online erfolgreich sein?

Hallo, wir verhelfen Unternehmen zu Online-Wachstum. Ihnen auch?

Weitere Artikel


Blitzschnelles Wordpress mit dem Plugin WP Rocket


Bestes DSGVO Plugin für Wordpress: DSGVO Pixelmate


Top Google Platzierung mit einem SEO Audit


Warum schnelle Ladezeiten einer Webseite wichtig sind


3 Tools zum Messen von Website Ladezeiten


Website Knorr-Bremse: ein Performance Test


Vorteile einer Individual-Software gegenüber Software von der Stange


Affiliate-Werbung ohne Cookies und Tracking