[英]How to populate a Clojure record from a map?
是否有類似struct-map的記錄? 如果沒有,我是否應該使用結構(文檔不鼓勵使用結構)?
也許我完全在做錯事? 我有一個相當復雜的功能,目前帶有選項圖。 我試圖弄清楚哪些選項值可以接受/使用(通過將其替換為記錄)。 現在,我想將其與映射中具有此信息的代碼進行接口(並且在記錄中包含數據的超集)。
不建議僅將記錄用於“文檔”-普通的舊地圖更靈活,更簡單,更容易。 對於文檔,您僅可以添加文檔字符串或注釋,或創建類似(defn make-whatever [thing1 thing2])
的函數。
如果仍然需要記錄,則可以選擇兩種方式,具體取決於您使用的是Clojure 1.3版還是更高版本。 如果是這樣,則(defrecord Whatever ...)
還定義了map->Whatever
函數,以及一個帶有位置參數的->Whatever
函數。 如果沒有,則可以寫入(into (Whatever. nil nil nil) some-map)
。nil (into (Whatever. nil nil nil) some-map)
(為記錄類型傳遞正確數量的nil)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.