[英]Recommended macros to add functionality to Clojure's defrecord constructor?
clojure中的defrecord
允許使用自定義字段定義簡單數據容器。
例如
user=> (defrecord Book [author title ISBN])
user.Book
結果的最小構造函數只接受位置參數而沒有其他功能,例如字段默認,字段驗證等。
user=> (Book. "J.R.R Tolkien" "The Lord of the Rings" 9780618517657)
#:user.Book{:author "J.R.R Tolkien", :title "The Lord of the Rings", :ISBN 9780618517657}
編寫包含默認構造函數的函數總是可以獲得更復雜的構造語義 - 使用關鍵字參數,提供默認值等等。
這似乎是宏提供擴展語義的理想方案。 人們為更豐富的defrecord
構造編寫和/或推薦了哪些宏?
支持完整和部分記錄構造函數以及支持可評估打印和pprint表單的示例:
大衛是我的同事,我們在我們的項目中廣泛使用這個defrecord2。 我認為這樣的事情應該是Clojure核心的一部分(細節可能會有很大不同)。
我們發現重要的事情是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.