Clojure Immutable Nature
2018-12-27 10:44 更新
默认情况下,结构也是不可变的,所以如果我们试图改变特定键的值,它不会改变。
语法
下面是 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'函数在结构中为Employee Name关联一个新值。
输出
以上示例将输出以下结果:
John John
这清楚地表明该结构是不可变的。 更改值的唯一方法是使用更改后的值创建一个新变量,如以下程序所示。
例
(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)
输出
以上示例将输出以下结果:
{:EmployeeName Mark, :Employeeid 1}
以上内容是否对您有帮助:
更多建议: