clojure 中的向量和类型转换
vector in clojure and type casting
(= ":bar:foo" ((fn [[a b]] (str b a)) [:foo :bar]))
我有几个关于这个 clojure 代码的问题。
- 向量中每个元素前面的
:
是怎么回事?
- str 如何将
:foo
转换为字符串类型 ":foo"
?
谢谢
在clojure中,这种元素称为关键字。关键字对自身求值,通常用作值的访问器。
(def x {:a 10, :b 20})
您可以查看类型:
user=> (class :foo)
clojure.lang.Keyword
user=> (type :foo)
clojure.lang.Keyword
可以转换成str:注意前面的:
.
user=> (str :foo)
":foo"
如果只想从关键字中获取名称字符串,则:
user=> (name :foo)
"foo"
或者您可以从 str 创建关键字:
user=> (keyword "foo")
:foo
(= ":bar:foo" ((fn [[a b]] (str b a)) [:foo :bar]))
我有几个关于这个 clojure 代码的问题。
- 向量中每个元素前面的
:
是怎么回事? - str 如何将
:foo
转换为字符串类型":foo"
?
谢谢
在clojure中,这种元素称为关键字。关键字对自身求值,通常用作值的访问器。
(def x {:a 10, :b 20})
您可以查看类型:
user=> (class :foo)
clojure.lang.Keyword
user=> (type :foo)
clojure.lang.Keyword
可以转换成str:注意前面的:
.
user=> (str :foo)
":foo"
如果只想从关键字中获取名称字符串,则:
user=> (name :foo)
"foo"
或者您可以从 str 创建关键字:
user=> (keyword "foo")
:foo