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}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号