W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
默認(rèn)情況下,結(jié)構(gòu)也是不可變的,所以如果我們試圖改變特定鍵的值,它不會改變。
下面是 Immutable Nature 的使用示例:
(ns clojure.examples.example (:gen-class)) (defn Example [] (defstruct Employee :EmployeeName :Employeeid) (def emp (struct-map Employee :EmployeeName "John" :Employeeid 1)) (println (:EmployeeName emp)) (assoc emp :EmployeeName "Mark") (println (:EmployeeName emp))) (Example)
在上面的例子中,我們嘗試使用'assoc'函數(shù)在結(jié)構(gòu)中為Employee Name關(guān)聯(lián)一個新值。
以上示例將輸出以下結(jié)果:
John John
這清楚地表明該結(jié)構(gòu)是不可變的。 更改值的唯一方法是使用更改后的值創(chuàng)建一個新變量,如以下程序所示。
(ns clojure.examples.example (:gen-class)) (defn Example [] (defstruct Employee :EmployeeName :Employeeid) (def emp (struct-map Employee :EmployeeName "John" :Employeeid 1)) (def newemp (assoc emp :EmployeeName "Mark")) (println newemp)) (Example)
以上示例將輸出以下結(jié)果:
{:EmployeeName Mark, :Employeeid 1}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: