1

私はclojureに非常に慣れていないので、Javaでコーディングしたいと思います。

私が持っているのはこの現在のコードです。しかし、CompilerExceptionをスローするようですjava.lang.RuntimeException:マクロの値を取得できません:#'clojure.core /->、コンパイル:(NO_SOURCE_PATH:2)

さらに、1つのオブジェクトのみをインスタンス化するようです

(defrecord Learning [Name Age Gender])
  (def person 
    (apply -> Learning
           (clojure.string/split
             "Jon,12,Male", #",")
           )
    )

しかし、私がやりたいのは、これをJavaでコーディングすることです。たとえば、Javaでは次のようなクラスがあります

Public class Person {
Private int age;
Private String Gender;
Private String Name;

Person(String Name, String gender, int age)
{
this.name = Name;
this.age = age;
this.Gender = gender;
}
}

To Instantiate an instance of this class we would have a line like 

Person Jon = new Person(Jon, Male, 12); 

clojureではどうすればよいですか?

私はこれを持っています

(defn update [x]
  (def person 
    (apply ->Learning
           (clojure.string/split
             x, #",")
           )
    )
)

しかし、それはその奇形の表現を言います。私がやろうとしているのは、javaでコンストラクターを作るようなものです。

4

1 に答える 1

2

->コンパイラエラーを回避するには、との間のスペースを削除するだけです。Lerning

(def person (apply ->Learning
                   (clojure.string/split
                    "Jon,12,Male", #",")))

そしてそれはうまくいくでしょう

person
-> Learning{:Name "Jon", :Age "12", :Gender "Male"}
于 2013-01-01T04:15:24.147 に答える