2024 Clojure 状态调查! 中分享你的想法。

欢迎!请查看 关于 页面以了解有关其工作方式的更多信息。

+4
文档
重标记

当前的文档字符串

clojure.core/keyword
([name] [ns name])
  Returns a Keyword with the given namespace and name.  Do not use :
  in the keyword strings, it will be added automatically.

clojure.core/symbol
([name] [ns name])
  Returns a Symbol with the given namespace and name. Arity-1 works
  on strings, keywords, and vars.

参数列表建议第一个参数只能用于简单的标识符。
然而,底层实现明确处理了值中存在 `/` 的情况,甚至当参数是命名 `nsname` 时也是如此。

static public Symbol intern(String nsname){
	int i = nsname.indexOf('/');
	if(i == -1 || nsname.equals("/"))
		return new Symbol(null, nsname);
	else
		return new Symbol(nsname.substring(0, i), nsname.substring(i + 1));
}

以下是一个一些现有代码依赖于此行为的示例: transit-clj

或许,应该更新文档字符串以反映出这一点?

1 答案

+2

选中
...