簡體   English   中英

如何從地圖填充Clojure記錄?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM