我已经定义了记录来存储用户详细信息和地址详细信息。Clojure:更新记录字段的值
(defrecord User [id name address])
(defrecord Address [id location street city state])
(def usr (User. 1 "Abc"
(Address. 1 "Location 1" "Street" "NY" "US")))
我已经更新 “名称” 为 “BCD” 使用以下代码
(assoc usr :name "BCD")
输出:
#async_tea_party.core.User{:id 1, :name "BCD", :address #async_tea_party.core.Address{:id 1, :location "Location 1", :street "Street", :city "NY", :state "US"}}
(USR)
输出:
#async_tea_party.core.User{:id 1, :name "Abc", :address #async_tea_party.core.Address{:id 1, :location "Location 1", :street "Street", :city "NY", :state "US"}}
新值name
字段没有更新,它仍然显示旧值。
如何在“用户”记录中永久更新“名称”字段?
@ user1702169这项工作。但最有可能的是,您需要构建您的程序以避免依赖原子,并直接将新记录传递到您需要的地方。 – nha