Unterstützt Lua Decorators?

8

Ich komme aus einem Python-Hintergrund und mag wirklich die Power von Python Decorators.

Unterstützt Lua Decorators?

Ich habe den folgenden Link gelesen, aber es ist mir unklar: Ссылка

AKTUALISIEREN

Würdest du auch ein Beispiel dafür geben, wie man es in Lua implementiert, wenn es möglich ist.

    
nickb 04.09.2010, 01:21
quelle

1 Antwort

9

Die "Dekorateure" werden auf der von Ihnen zitierten Seite dokumentiert (und zum Beispiel in diesem verwendet, um eine Typüberprüfung hinzuzufügen ) haben wenig mit Pythons seltsam benannter "Dekoratorsyntax" zu tun, für eine spezifische Art und Weise, eine HOF anzuwenden - vielmehr sind die in Lua's Wiki beschriebenen und verwendeten Dekoratoren ein Lua-Idiom, um eine Anwendung des Decorator Design Pattern zu Lua-Funktionen (indem Sie "zusätzliche Attribute" - wie Docstrings, Typchecking-Funktionen, usw. - in halten) separate globale Tabellen).

Lua unterstützt HOFs (ich bin mir nicht sicher, ob Sie einen Funktionsnamen an das Ergebnis der HOF-Funktion binden können, aber Sie können leicht, wie die Wiki-Seiten zeigen Verwenden Sie eine anonyme "Originalfunktion" und binden Sie nur einen Namen an das HOF-Ergebnis mit dieser Anon-Funktion als arg).

Pythons "Decorator Syntax" Syntax Zucker ist nett (und zu meiner Überraschung, scheint die Verwendung von HOFs von den meisten Pythonistas um eine Größenordnung erhöht! -), aber es gibt nichts intrinsisch oder wesentlich an ihnen, dass Sie können tue es in Lua (und Lua's anonyme Funktionen führen Kreise um Pythons doof, begrenzt lambda sowieso - genau wie in Javascript, haben sie im Wesentlichen die gleiche Macht und so ziemlich die gleiche Syntax, wie eine "normale" benannte Funktion! -).

    
Alex Martelli 04.09.2010, 01:56
quelle