Clojure:
การพิมพ์ผลลัพธ์การแก้ไขโค้ด

วิธีการ:

ใน Clojure, คุณมักจะพิมพ์ข้อมูลการดีบักโดยใช้ println, printf, pr, หรือ prn นี่คือวิธีที่คุณสามารถเพิ่มการพิมพ์ดีบักได้:

(defn add-and-print [a b]
  (println "Adding:" a "and" b) ; พิมพ์การดำเนินการ
  (let [result (+ a b)]
    (println "Result:" result)  ; พิมพ์ผลลัพธ์
    result))                    ; คืนค่าผลลัพธ์

(add-and-print 3 4)

ผลลัพธ์ตัวอย่าง:

Adding: 3 and 4
Result: 7

หรือ, สำหรับการดีบักค่าในขณะที่อยู่กลางของ macro การเรียง:

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

(-> 3
    (+ 5)
    (pprint)             ; พิมพ์ผลลัพธ์กลาง
    (* 2))

ผลลัพธ์ตัวอย่าง:

8

ลงลึก:

การพิมพ์การดีบักมีประวัติยาวนาน อาจจะเก่าเท่ากับการเขียนโปรแกรมเอง เป็นสิ่งที่ตรงไปตรงมา: คุณใส่คำสั่งพิมพ์ในที่ที่คุณสงสัยว่าอาจมีปัญหา รันโค้ด และดูผลลัพธ์

ฟังก์ชั่นของ Clojure สำหรับการพิมพ์ดีบักค่อนข้างคล้ายกับภาษา Lisp อื่นๆ แต่มีรสชาติฟังก์ชันโดยทั่วไป println และ prn แตกต่างกันตรงที่หลังเขียนข้อมูลในรูปแบบที่สามารถอ่านได้โดย Clojure reader pprint (พิมพ์สวย) จาก clojure.pprint สามารถใช้เมื่อคุณต้องการรูปแบบที่ดูดีกว่า

เครื่องมือเฉพาะของ Clojure สำหรับการดีบักคือ tap> ที่นำมาใช้ใน Clojure 1.10, มันอนุญาตให้ “แตะ” เข้าไปในโค้ดที่กำลังทำงานอย่างไม่สะดุด โดยไม่ต้องมีคำสั่งพิมพ์ในโค้ดของคุณ

สำหรับโปรเจคที่ใหญ่ขึ้นหรือมีความซับซ้อนมากขึ้น พิจารณาใช้ไลบรารีการบันทึกข้อมูลเช่น clojure.tools.logging หรือ timbre

ดูเพิ่มเติม:

  • คลังข้อมูล GitHub ของ clojure.tools.logging
  • คลังข้อมูล GitHub ของไลบรารีการบันทึกข้อมูล Timbre
  • คู่มือ clojure.pprint บน ClojureDocs