Wird es in scala 2.10 möglich sein, mehrere Klassen der obersten Ebene mit einem Makroaufruf zu erzeugen?

8

Ich habe ein Programm mit vielen Vortexen (was leider selbst von Scala-Mechanismen nicht reduzierbar ist). Aber wenn es eine Möglichkeit gäbe, komplexe Top-Level-Klassen mit einem Makro zu generieren, würde das alles verschwinden. Zum Beispiel:

%Vor%

Wird es mit Scala 2.10 Makros möglich sein?

    
Rogach 06.09.2012, 08:28
quelle

1 Antwort

7

Kurz gesagt: Nein.

Makro-Typen (dh Makros, die Typen anstelle von Methoden erzeugen) sind geplant, aber sie sind weder entworfen noch spezifiziert, geschweige denn implementiert, und sie werden nicht für 2.10 sein.

Außerdem kann ein einzelner Makroaufruf nur einen einzigen Typ erzeugen. Da jedoch Typen (insbesondere object s) verschachtelt werden können, ist dies keine Einschränkung: Sie können nur eine einzige Top-Level object erstellen, die alle benötigten Klassen enthält. Der Unterschied zwischen diesem und Ihrem Code ist im Grunde eine zusätzliche import -Anweisung:

%Vor%

Sie dachten über package -Makros, die ganze Pakete voller Klassen generieren können, aber da object s eine Obermenge von package s sind und Typmakros object s erzeugen können, die nicht notwendig wären .

    
Jörg W Mittag 06.09.2012, 10:09
quelle

Tags und Links