StartProduktUse CasesPreiseBlogKontaktAnmelden Demo buchen

Blog

Lua our powerful scripting language

Lua ist eine einfache und effektive Skriptsprache. Sie wird als Erweiterungssprache in vielen Anwendungen eingesetzt, von World of Warcraft bis Adobe Photoshop, und natürlich in smartextract. Lua hat viele Gemeinsamkeiten mit Python, aber auch einige bemerkenswerte Unterschiede.

Zuletzt aktualisiert:

Dieser Artikel zeigt die wichtigsten Punkte auf, die Sie beachten sollten. Wenn Sie bereits mit Python vertraut sind, können Sie nach wenigen Minuten in Lua programmieren.

Grundlegende Syntax

In Lua werden Zeichenketten und Zahlen auf ähnliche Weise geschrieben wie in Python. Auch Funktionsaufrufe sind recht vertraut. Es gibt jedoch ein paar unterschiedliche Elemente:

Boolesche Werte: In Lua werden boolesche Werte als true und false geschrieben.

Nullwert: Das Äquivalent zu Python's None wird in Lua nil genannt.

Kommentare: Jeder Text, der auf -- folgt, wird als Kommentar behandelt.

Operatoren

Boolesche und numerische Operatoren sind größtenteils identisch mit denen in Python, mit zwei bemerkenswerten Ausnahmen:

Der Operator "nicht gleich" wird als ~= statt als != geschrieben.

Der Operator zur Verkettung von Zeichenketten lautet ... Anders als in Python führt der Versuch, den Operator + zum Addieren von Zeichenketten zu verwenden, zu einem Fehler.

Codeblöcke und Kontrollfluss

Leerzeichen haben in Lua keine Bedeutung, so dass die Einrückung optional ist. Das ist ein Unterschied zu Python, wo die Einrückung Teil der Syntax ist. In Lua werden Codeblöcke mit dem Schlüsselwort end abgeschlossen, um eine klare Abgrenzung der Codesegmente zu gewährleisten.

Die numerische for-Schleife sieht wie folgt aus:

Datenstrukturen in Lua

'Dictionaries' In Lua wird das Äquivalent zu einem Python-Dictionary als Tabelle bezeichnet. Die Syntax ist recht intuitiv, obwohl sie sich leicht von der in Python unterscheidet:

Um auf Elemente zuzugreifen, verwenden Sie eckige Klammern mit dem Schlüsselnamen. Wenn ein Schlüssel nicht existiert, gibt Lua einfach nil zurück, ohne einen Fehler zu verursachen:

Um über die Einträge in einer Tabelle zu iterieren, verwenden Sie die pairs Funktion:

Listen

Lua verfügt nicht über einen eigenen Listentyp. Stattdessen verwendet es Tabellen mit numerischen Indizes, um Listen zu erstellen. Hier ist ein einfaches Beispiel:

Ein wesentlicher Unterschied zu Python ist, dass die Indizierung bei 1 beginnt. Sie können die Größe der Liste mit dem Operator # bestimmen. So funktioniert es:

Um über eine Liste zu iterieren, können Sie eine numerische for-Schleife oder die ipairs Funktion verwenden, die der enumerate-Funktion von Python ähnlich ist:

Objekte und Module

Lua hat zwar kein eingebautes Objektsystem, bietet aber eine Syntax, die ein objektähnliches Verhalten unter Verwendung von Tabellen ermöglicht. Wenn ein Tabellenschlüssel ein gültiger Bezeichner ist, können Sie darauf mit der Punktnotation zugreifen:

Module in Lua, wie z. B. die built-in string, table, and math Module, sind im Wesentlichen Tabellen, die Funktionen enthalten. Lua erlaubt auch Methodenaufrufe in Doppelpunkt-Syntax, was den Code lesbarer macht:

Der letzte Ausdruck oben stützt sich auf den leistungsstarken metatable-Mechanismus, auf den wir hier nicht näher eingehen werden.

Standardbibliotheken in Lua

Im Vergleich zu Python ist die Sammlung eingebauter Funktionen in Lua relativ klein, aber sie enthält einige leistungsfähige Werkzeuge:

- require-Funktion: Diese Funktion wird verwendet, um Module zu laden. Normalerweise gibt sie eine Funktion oder eine Tabelle von Funktionen zurück. In smartextract gibt require Zugriff auf die maschinellen Lernmodelle und die Bibliotheken für die Dokumentenverarbeitung, wodurch die Möglichkeiten von Lua erheblich erweitert werden.

- string -Tabelle: Diese Tabelle enthält die Funktionen zur Bearbeitung von Zeichenketten, z. B. für den Mustervergleich. Ohne sie lässt sich kaum eine Textverarbeitungsaufgabe lösen.

- table- Tabelle: Diese Tabelle bietet verschiedene Funktionen zur Tabellenmanipulation , darunter Dienstprogramme zum Sortieren und Verwalten von Tabellen. Damit lassen sich Daten ordnen und weiterverarbeiten.

-math-Tabelle: Die Mathe-Tabelle enthält die mathematischen Funktionen , wie z. B. math.min, math.max und math.exp. Diese Funktionen sind für die Durchführung mathematischer Operationen nützlich.

-pairs und ipairs Funktionen: Diese Funktionen wurden bereits in früheren Abschnitten hervorgehoben und werden zur Iteration über Tabellen verwendet. pairs iteriert über alle Einträge in einer Tabelle, während ipairs speziell über numerische Einträge iteriert.

- Funktionen zur Fehlerbehandlung: Die Funktion error(message) löst einen Fehler mit einer bestimmten Meldung aus, während assert(v, message) einen Fehler auslöst, wenn der Wert v gleich null oder falsch ist.

Beachten Sie, dass einige Standardbibliotheken, die in normalem Lua verfügbar sind, wie z.B. os, io und debug, nicht in smartextract enthalten sind, wahrscheinlich aufgrund ihrer speziellen Anwendungsfälle oder Leistungsüberlegungen.

Hier sind ein paar wichtige Unterschiede zwischen Lua und Python, die Sie kennen sollten:

1-basierte Indizierung: Im Gegensatz zu Python, das eine 0-basierte Indizierung verwendet, beginnt die Indizierung in Lua bei 1. Außerdem ist der Endindex bei String- und Tabellenoperationen inklusive:

Bedingte Tests: In Lua sind die einzigen Werte, die in bedingten Anweisungen als falsch bewertet werden, nil und false. Alle anderen Werte, einschließlich Null und leere Sammlungen, werden als wahr angesehen:

Auslassen von Klammern: Klammern können bei Funktionsaufrufen weggelassen werden, wenn das Argument eine literale Zeichenkette oder eine Tabelle ist:

Umfang der Variablen: Standardmäßig sind die Variablen in Lua global. Um eine lokale Variable zu erstellen, müssen Sie das Schlüsselwort ‘local’ verwenden.

Ausführlichere Informationen zu den Merkmalen und Funktionen von Lua finden Sie im Lua-Referenzhandbuch. Außerdem bietet "Programming in Lua" von Roberto Ierusalimschy eine freundliche Einführung in die Lua-Programmierkonzepte und ist für Neueinsteiger in die Sprache sehr empfehlenswert.

Schicken Sie uns ein Dokument und sehen Sie die Extraktion.

30 Minuten, Ihre eigenen Belege, keine Vorbereitung nötig.