オブジェクトの「デフォルト値」をclojureの型に基づいて取得したいと考えています。例えば、それはこのように働くかもしれない。いずれの場合にもオブジェクトの型の "デフォルト値"をclojureで取得しますか?
(default-value 15) ;; => 0
(default-value "hi") ;; => ""
、それは値の型をとり、その値の型の「空白」のインスタンスを返します。私が思い付くことができる最高は
(defn default-value [x] (.newInstance (.getClass x)))
である。しかし、これは数字上では動作しません。あなたがいる場合を除き
repl=> (.newInstance (.getClass 1))
NoSuchMethodException java.lang.Long.<init>() java.lang.Class.getConstructor0 (Class.java:3082)
数字の「デフォルト」値は、数字の使用方法によって異なります。例えば。加算の場合は0、乗算の場合は1が使用されます。 – ClojureMostly