Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 如何创建一个";的多个实例;“对象”;在Clojure?_Oop_Clojure - Fatal编程技术网

Oop 如何创建一个";的多个实例;“对象”;在Clojure?

Oop 如何创建一个";的多个实例;“对象”;在Clojure?,oop,clojure,Oop,Clojure,我可以使用哪些Clojure方法在一个对象上创建多个实例,然后将其存储在Java ArrayList中 我知道如何在Java中实现这一点,但我不确定如何在Clojure中继续,任何帮助/指针都将非常感谢为什么不存储在vector中 user=> (def lst (atom [])) user=> (swap! lst conj "String") user=> (swap! lst conj 123) user=> @lst ["String" 123] 看 返回#

我可以使用哪些Clojure方法在一个对象上创建多个实例,然后将其存储在Java ArrayList中


我知道如何在Java中实现这一点,但我不确定如何在Clojure中继续,任何帮助/指针都将非常感谢

为什么不存储在vector中

user=> (def lst (atom []))
user=> (swap! lst conj "String")
user=> (swap! lst conj 123)
user=> @lst
["String" 123]

返回
#

clojure中有两种用于创建新对象的表单

(Classname. args*)
(new Classname args*)
下面是如何在clojure中创建java对象的简单示例。首先,它在Java中的外观:

Thread thread = new Thread("Hi there");
Clojure

; return instance of java.lang.Thread class
(new Thread "Hi there")
或者以另一种方式

(Thread. "Hi there")

谢谢,我知道如何使用arraylist,但我不知道如何创建一个对象并将它们存储在arraylist中,如果这样的话sense@RicardoSanchezhsestupin答案中的代码确实创建了两个对象并将它们存储在数组列表中。@RicardoSanchez抱歉,我不明白你是什么意思好吧,我不知道如何创建一个对象,我想知道如何在Clojure@RicardoSanchez它就在代码中:
(新对象)
。这就是你创建对象的方法。所以LST就像C++结构一样?@ ReRasdoDaNoCZZ不,LST是一个包含向量的原子。一个原子(有点,SoTa)就像C++中的指针,而向量就像C++中的一个const向量。因此,C++代码中的代码是:创建一个称为“代码> LST < /COD>的非const指针,指向一个常量空向量。然后它创建一个常量向量,包含字符串
“string”
,并使
lst
指向该字符串。然后它创建一个常量向量,其中包含
“String”
123
,并使
lst
指向该向量。然后它取消对指针的引用。请注意,在Clojure中,这不是通常的做法。
(Thread. "Hi there")