欢迎!请查阅关于页面了解有关此功能的一些更多信息。
ClojureScript 有 {{uuid}} 和 {{random-uuid}} 函数。在 ClojureScript 中拥有这些函数非常有用,我认为在 Clojure 中使用它们也会提高代码的可移植性。对此有任何兴趣的补丁吗?
评论者:
(链接: ~alexmiller) 我理解使它完全兼容的想法很好。但说实话,作为一个经常写 CLJC 的用户,如果我们只有 uuid 和 random-uuid(尤其是后者),就足以解决我99% 的 UUID 需求,我想对大多数人来说也是如此。我们不能先添加那些对所有人都有利的功能,把详细设计的 UUID 东西单独当作一个单独的问题吗?
uuid
random-uuid
评论者:alexmiller
我认为这样做的最主要原因是为了提高可移植性。最合适的做法是生成 java.util.UUID,这和clojure中正在进行的一致吗?也就是说,在两个平台上创建和使用 uuids 的相同代码能工作吗?如果不能,那么这可能就没有很好的理由去这样做。
评论者:[email protected]
最合适的做法是生成 java.util.UUID,这和clojure中正在进行的一致吗?
ClojureScript定义了自己的UUID类型,因为JavaScript中没有这样的类型。[链接](https://github.com/clojure/clojurescript/blob/dd589037f242b4eaace113ffa28ab7b3791caf47/src/main/cljs/cljs/core.cljs#L10088-L10128) 我不是非常清楚你的“一致性”指的是什么。
也就是说,是否可以实现在两个平台上创建和使用 uuids 的相同代码?
CLJS的UUID不支持Java UUID的所有方法,但是重要的特性都有(等价性、从字符串创建、转换为字符串),这足以在处理UUID时,显著提高可移植性。
评论者:bronsa
clojure和clojurescript都有uuid标记字面量,这应该足够用于互操作性。
我知道这一点,只是想知道是否有任何函数可以在uuid上调用,而且需要一些可移植的等价函数,就像[链接](http://docs.oracle.com/javase/8/docs/api/java/util/UUID.html) 中的内容。
我的主要点可能是:与其仅仅考虑uuid/random-uuid函数,不如考虑将问题定义为:如何为Clojure/ClojureScript添加可移植的UUID支持?这是一项更多的工作,但在我个人看来,更有价值。
因此,也需要考虑以下方面(其中一些已经存在,但可能尚未针对可移植性进行测试)- 构造- 打印 - 打印,pr,美化打印- 读取- 哈希码- 位之间的转换- 字符串之间的转换- 成分提取
然后我认为这应该在核心中,还是在data.uuid或其他东西中值得考虑。
我认为最好在设计页面上工作(这个票据只是更大问题的其中一个单位)。或许http://dev.clojure.org/pages/viewpage.action?pageId=950382可以提供一些线索。