理解困难:Clojure中的状态
我理解:state/does/。它在类中创建一个字段,如Java中的字段。我不明白的是这有什么意义?似乎我只看到Clojure生成的类扩展了其他类。举个例子。我不懂Java,也不太精通面向对象编程。有人能向我解释一下:state的意义吗?它在哪里适合Java互操作 非常感谢理解困难:Clojure中的状态,clojure,clojure-java-interop,gen-class,Clojure,Clojure Java Interop,Gen Class,我理解:state/does/。它在类中创建一个字段,如Java中的字段。我不明白的是这有什么意义?似乎我只看到Clojure生成的类扩展了其他类。举个例子。我不懂Java,也不太精通面向对象编程。有人能向我解释一下:state的意义吗?它在哪里适合Java互操作 非常感谢 注意:当我说:state时,我指的是(:gen class:state)我在#Clojure IRC频道上与hiredman讨论过,他告诉我它的要点是每个实例的状态。这是有道理的。:状态只是在作为gen类一部分生成的函数之间
注意:当我说:state时,我指的是(:gen class:state)我在#Clojure IRC频道上与hiredman讨论过,他告诉我它的要点是每个实例的状态。这是有道理的。:状态只是在作为gen类一部分生成的函数之间共享一些数据的一种方式。将其视为与对象的实例数据完全相同。有关
状态的更多信息以及如何初始化它,请参阅本文
从文章中:
:state
定义将返回对象状态的方法
:init
定义初始化器的名称。这是一个必须返回向量的函数。第一个元素也是超类构造函数的参数向量。在我们的例子中,这只是一个空向量。第二个元素是对象的状态
总之,init
返回对象的状态,并在实例化对象时调用state
是类上的一个方法,与函数相反,它将返回与init
返回的向量中的第二个元素相同的值
然后,本文将继续展示如何使用原子来更改对象的状态(如果需要)