在我的应用程序中,我需要将clojure关键字例如。 :将var_name转换为字符串“var_name”。任何想法如何可以做到?如何将clojure关键字转换为字符串?
88
A
回答
147
user=> (doc name)
-------------------------
clojure.core/name
([x])
Returns the name String of a string, symbol or keyword.
nil
user=> (name :var_name)
"var_name"
8
注意kotarak的答案将不会返回关键字的命名空间的一部分,只是名称的一部分 - 所以:
(name :foo/bar)
>"bar"
使用他的其他评论让你问什么:
(subs (str :foo/bar) 1)
>"foo/bar"
11
实际上,获取关键字的命名空间部分同样简单:
(name :foo/bar) => "bar"
(namespace :foo/bar) => "foo"
注意,多段的命名空间是一个分开的,而不是‘/’
(namespace :foo/bar/baz) => throws exception: Invalid token: :foo/bar/baz
(namespace :foo.bar/baz) => "foo.bar"
而且这还与命名空间限定关键字“”:
;; assuming in the namespace foo.bar
(namespace ::baz) => "foo.bar"
(name ::baz) => "baz"
0
这也会给你来自关键字的字符串:
(str (name :baz)) -> "baz"
(str (name ::baz)) -> "baz"
+1
'str'在你的例子中不需要。 – Vincent 2018-01-01 12:57:33
相关问题
- 1. 如何将Clojure中的字符LazySeq转换为字符串?
- 2. 如何将字符串转换为键
- 3. Elixir - 如何将关键字列表转换为字符串?
- 4. 如何将关键字转换为字符串?
- 5. 如何将常规字符串转换为关键字?
- 6. Clojure:将字符串转换为散列图中的键值对
- 7. 将C#转换为Excel,将关键字替换为关键字
- 8. php - 如何将字符串转换为其关键字的关联数组
- 9. 将两个字符串列表转换为关键字参数
- 10. 如何将字典转换为一串关键字参数?
- 11. 如何将字符串转换为clojure表达式?
- 12. 如何将字符串转换为Clojure中的函数?
- 13. 如何将字符串的字符串转换为字符?
- 14. SWT:将键码转换为字符串
- 15. 将字符串转换为字符串
- 16. 将字符串转换为字符串
- 17. 将字符串转换为字符串
- 18. 如何将嵌套字典键转换为字符串?
- 19. 如何将字符串文字转换为字符串值
- 20. 将PHP字符串转换为键码字符串
- 21. 如何将JTextField转换为字符串和字符串为JTextField?
- 22. 将字符串中的每个字符转换为字典键
- 23. 如何将关键字转换为字符串并保留冒号
- 24. 将字符串转换为int,int转换为字符串
- 25. 如何将字符串转换为UInt32?
- 26. 如何将字符串转换为UTF8?
- 27. 如何将字符串转换为long
- 28. 如何将字符串转换为xml
- 29. 如何将OutputStream转换为字符串?
- 30. 如何将字符串转换为Guid
我无法想象一个更完整的答案,但只是为了好玩,我敢于有人想出它。 – 2010-09-15 15:55:57
@Hamish也许加入'(源名)'? – ponzao 2010-09-15 18:05:47
'名称'如何工作不应该是有趣的。文档字符串是合同。其他任何东西都是一个实现细节,不应该依赖。 – kotarak 2010-09-15 19:32:37