在 clojure 中创建字典
Create a dictionary in clojure
我想创建一个 json 表示一个已知密钥和可变数量的未知:
(defn test1 [var1 & var2]
(print json/write-str :key1 var1 var2))
(defn -main [& args]
(test1 "key1_val" {:key2 "val2" :key3 "val3"}))
它returns这个:
:key1 key1_val ({:key2 val2, :key3 val3})
我希望它是一本字典。我想知道,方法返回的内容真的是我要找的吗?我认为不是,因为第二部分在括号中。
(print json/write-str :key1 var1 var2)
这会打印 json/write-str
的函数值,后跟每个键的值。在 clojure 中,如果你想要一个 运行 的函数,你必须应用它,这通常是通过将它括在括号中来完成的。
接下来,write-str
需要多个arg,但是唯一变成json的arg是第一个,所以你需要把你的数据包装在一个数据结构中。
我不确定您真正想要的数据结构,但我认为像这样的更接近:
(json/write-str {:key1 [var1 var2]})
此外,作为一个小注释,代码没有 return :key1 key1_val ({:key2 val2, :key3 val3})
,它打印了字符串 ":key1 key1_val ({:key2 val2, :key3 val3}) ",并且 returned nil
,因为 println 总是 returns nil
。
我想创建一个 json 表示一个已知密钥和可变数量的未知:
(defn test1 [var1 & var2]
(print json/write-str :key1 var1 var2))
(defn -main [& args]
(test1 "key1_val" {:key2 "val2" :key3 "val3"}))
它returns这个:
:key1 key1_val ({:key2 val2, :key3 val3})
我希望它是一本字典。我想知道,方法返回的内容真的是我要找的吗?我认为不是,因为第二部分在括号中。
(print json/write-str :key1 var1 var2)
这会打印 json/write-str
的函数值,后跟每个键的值。在 clojure 中,如果你想要一个 运行 的函数,你必须应用它,这通常是通过将它括在括号中来完成的。
接下来,write-str
需要多个arg,但是唯一变成json的arg是第一个,所以你需要把你的数据包装在一个数据结构中。
我不确定您真正想要的数据结构,但我认为像这样的更接近:
(json/write-str {:key1 [var1 var2]})
此外,作为一个小注释,代码没有 return :key1 key1_val ({:key2 val2, :key3 val3})
,它打印了字符串 ":key1 key1_val ({:key2 val2, :key3 val3}) ",并且 returned nil
,因为 println 总是 returns nil
。