Clojure:
Debug-output afdrukken

Hoe te:

In Clojure print je vaak debug-output met behulp van println, printf, pr, of prn. Hier is hoe je wat debug-prints toevoegt:

(defn add-and-print [a b]
  (println "Optellen:" a "en" b) ; Print de operatie
  (let [resultaat (+ a b)]
    (println "Resultaat:" resultaat)  ; Print het resultaat
    resultaat))                       ; Geeft het resultaat terug

(add-and-print 3 4)

Voorbeelduitvoer:

Optellen: 3 en 4
Resultaat: 7

Of, om waardes te debuggen in het midden van een threading macro:

(require '[clojure.pprint :refer [pprint]])

(-> 3
    (+ 5)
    (pprint)             ; Print tussentijds resultaat
    (* 2))

Voorbeelduitvoer:

8

Diepgaand:

Print-debugging heeft een lange geschiedenis, waarschijnlijk zo oud als programmering zelf. Het is eenvoudig: je voegt printopdrachten in waar je problemen vermoedt, draait de code en bekijkt de uitvoer.

Clojure’s functies voor debug-printen lijken sterk op die in andere Lisp-talen, maar dan met de gebruikelijke functionele smaak. println en prn verschillen in dat de laatste gegevens schrijft op een manier die kan worden gelezen door de Clojure-lezer. pprint (mooi printen) van clojure.pprint kan worden gebruikt wanneer je een mooier formaat wilt.

Een specifiek hulpmiddel voor Clojure voor debuggen is tap>. Geïntroduceerd in Clojure 1.10, laat het toe om niet-blokkerende ’taps’ in lopende code te doen zonder je code te moeten vervuilen met printfuncties.

Voor grotere of meer complexe projecten, overweeg een loggingbibliotheek zoals clojure.tools.logging of timbre.

Zie Ook: