Ich habe gerade bemerkt, dass Scala Makros hat, aber ich habe nie einen Code gesehen, der sie verwendet. Sie scheinen auch ziemlich verschieden von C-Präprozessor-Makros und dergleichen zu sein. Wenn man die overview Makros liest, sieht es nicht so aus, als würden sie irgendetwas anbieten, was vorher in Scala nicht möglich war. Unter der Motivation Überschrift gibt es eine Liste der Dinge, die Makros zu aktivieren:Scala-Makros, wo werden sie verwendet?
- Sprache Virtualisierung (Überlastung/Überschreiben Semantik der ursprünglichen Programmiersprache tiefe Einbettung von DSLs zu ermöglichen), Verdinglichung
- Programm (Bereitstellung von Programmen mit Mitteln ihren eigenen Code) auf der Grundlage Programm Verdinglichung),
- algorithmisches Programm 012
- Selbstoptimierung (Selbstanwendung von Optimierungen domänenspezifischen zu inspizierenKonstruktion (Generierung von Code, der mühsam mit den Abstraktionen geschrieben wird, die von einer Programmiersprache unterstützt werden).
Später im Menü gibt es experimentelle Makro-Funktionen, wie zum Beispiel Typ-Makros, quasiquotes, untypisierten Makros und noch mehr. Dies ist eindeutig gefragt!
All diese scheinen wie nette Features für Leute, die sehr anspruchsvolle Bibliotheken mit einem starken Verständnis von Scala bauen. Aber bieten Makros auch etwas für den durchschnittlichen Scala-Entwickler? Werden Makros meinen Scala-Code verbessern?
Sie einen Blick auf unsere neuesten Papier nehmen, die einige der interessantesten Verwendungen von Makros skizziert: http://scalamacros.org/ papstalks/2013-04-22-LetOurPowersCombine.pdf. –
Hier ist ein dedizierter Dokumentations-Artikel: http://docs.scala-lang.org/overviews/macros/usecases.html –