2011-01-02 28 views

Trả lời

10

defrecord tuyên bố loại và hàm tạo, nhưng loại thực hiện giao diện bản đồ clojure. Bạn chỉ cần đặt các trường bắt buộc trong khai báo. Ví dụ,

(defrecord MyRecord [required1 required2]) 

(defn make-my-record [r1 r2 & [opt1 opt2]] 
    (assoc (MyRecord. r1 r2) :optional1 opt1 :optional2 opt2)) 

có thể được sử dụng như thế nào,

user> (make-my-record 1 2) 
#:user.MyRecord{:required1 1, :required2 2, :optional2 nil, :optional1 nil} 
user> (make-my-record 1 2 :a :b) 
#:user.MyRecord{:required1 1, :required2 2, :optional2 :b, :optional1 :a} 
Các vấn đề liên quan