ich einen Makro DBTEST haben will, die wie folgt verwendet werden können:Wie Variablen in einem Makro definieren, so dass sie für den Anrufer des Makros
sollte(dbtest
(prn test-object1)
(prn test-object2))
Test-object1 und Test-object2 sein Variablen, die durch dbtest definiert sind (weil ich sie jedes Mal brauche, wenn ich das Makro dbtest benutze). "prn" ist nur ein Beispiel; Ich möchte beliebigen Code innerhalb des Makros verwenden.
ich versuchte, das:
(defmacro dbtest [& body]
`(sql/with-connection db
(delete-all-tables)
(let [~'test-object1 (insert-object "foo")]
[email protected])))
wo insert-Objekt eine Funktion ist, die etwas in die DB ein und gibt eine die entsprechende Datenstruktur.
Aber es funktioniert nicht: Ich erhalte eine „nicht so var“ Fehler
Übrigens glaube ich, dass die Variablen, die du definierst, _anaphora_ heißen, wie "es" in diesem Satz: Ich mag Schokolade, obwohl es mich fett macht. – Ralph