2009-07-11 74 views
4

我明白什么:state/does /。它会在你的课堂中创建一个像Java一样的领域。我不明白的是这个是什么意思?看起来我只看到它用Clojure生成的类来扩展其他类。 http://www.fatvat.co.uk/2009/05/clojure-and-robocode.html就是一个例子。我不了解Java,而且我也不太熟悉面向对象编程。有人能解释一下以下几点:对我而言,以及它适合Java互操作性的地方?麻烦理解:在Clojure中的状态

非常感谢!

注意:当我说:国家,我指的是(:创一流:状态)

回答

2

我在#Clojure IRC频道hiredman谈了一下,然后他跟我说的要点它是每个实例的状态。这就说得通了。

3

:状态只是在作为gen-class的一部分生成的函数之间共享某些数据的一种方式。把它看作与对象的实例数据完全相同。在state以及如何

3

的介绍:初始化可以发现文章gen-class – how it works and how to use it

从文章:

  • :state定义了将返回对象的状态的方法。
  • :init定义了初始化程序的名称。这是一个必须返回一个向量的函数。第一个元素又是超类构造函数的参数向量。在我们的情况下,这只是空的矢量。第二个元素是对象的状态。

总之,init返回对象的状态,并在实例化对象时调用。 state是类中的一个方法,与函数相反,它将返回与由init返回的向量中的第二个元素相同的返回值。

本文继续展示如何使用原子来改变对象的状态(如果需要的话)。