2009-12-03 20 views
5

Ví dụ: hàm prxml in XML thành * out *. Thay vào đó, tôi muốn nắm bắt đầu ra này dưới dạng Chuỗi. Dưới đây là cách sử dụng điển hình từ một REPL:Cách thành ngữ để chụp các bản in thành * out * từ một chức năng Clojure là gì?

user> (prxml [:p "Test"]) 
<p>Test</p>nil 

tôi muốn thay vì muốn làm:

(def xml (capture-out (prxml [:p "Test"]))) 

tôi đã lên chụp-out chức năng, nhưng tôi nghi ngờ điều gì đó như nó tồn tại, chỉ có tôi gặp khó khăn khi tìm nó trong API hoặc danh sách gửi thư.

Trả lời

6

Tôi vừa phát hiện ra with-out-str từ điều này great blog post chi tiết xử lý XML trong Clojure.

Vì vậy, việc thực hiện đúng các ví dụ của tôi là:

(def xml (with-out-str (prxml [:p "Test"]))) 
6

Tổng quát hơn, nếu bạn nhìn vào các nguồn cho with-out-str bạn có thể xem làm thế nào để tự động ràng buộc *out* cho bất kỳ dòng sử dụng binding. Điều này làm việc để tự động thiết lập giá trị của bất kỳ var hiện có nào.

Các vấn đề liên quan