การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ

Clojure:
การอ่านอาร์กิวเมนต์จากคำสั่งลำดับ

วิธีทำ:

ใน Clojure, คุณสามารถดึงอาร์กิวเมนต์บน command line ได้โดยใช้ *command-line-args* นี่คือตัวอย่างง่ายๆ:

;; สมมติโค้ดนี้อยู่ในไฟล์ที่ชื่อว่า `echo.clj`

(defn -main [& args]
  (println "คุณได้ใส่:" args))

;; เพื่อรัน: `clojure echo.clj arg1 arg2 arg3`

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

คุณได้ใส่: (arg1 arg2 arg3)

ต้องการประมวลผลหรือไม่? ใช้ฟังก์ชั่นการรวบรวมของ Clojure

(defn -main [& args]
  (let [processed-args (mapv str/upper-case args)]
    (println "เปลี่ยนเป็นตัวพิมพ์ใหญ่:" processed-args)))

;; ตอนนี้, การรัน `clojure echo.clj hello world` จะแสดงผล:

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

เปลี่ยนเป็นตัวพิมพ์ใหญ่: ["HELLO" "WORLD"]

ลงลึก

*command-line-args* เป็น var ใน Clojure, ถูกตั้งค่าเป็นลำดับของอาร์กิวเมนต์ที่ส่งไปยังสคริปต์ มันเป็นอย่างนี้มาตั้งแต่ต้นยุคของ Clojure, แสดงให้เห็นว่า Clojure มองอาร์กิวเมนต์บน command line เป็นสิ่งสำคัญ

มีทางเลือกอื่นหรือ? กลไกของ Java สำหรับการดึงอาร์กิวเมนต์บน command line ก็ทำงานใน Clojure ได้เช่นกัน, ขอบคุณความสามารถในการทำงานร่วมกัน แต่นั่นยากกว่าในการใช้งาน

สำหรับรายละเอียดในการทำงาน, เมื่อ Clojure เริ่มต้น, มันจะวิเคราะห์อาร์กิวเมนต์และเก็บไว้ใน *command-line-args* สคริปต์ของคุณจากนั้นสามารถทำอะไรกับมันก็ได้—วิเคราะห์, ทอดทิ้ง, แปลง, คุณตั้งชื่อมัน

ดูเพิ่มเติม