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