欢迎!请参阅 关于 页面以获取更多关于此工作方式的信息。
ClojureScript 有 {{uuid}} 和 {{random-uuid}} 函数。这些在 ClojureScript 中很有用,我认为在 Clojure 中使用也将有助于提高代码的可移植性。是否有人对这一补丁感兴趣?
评论者:wilkerlucio
(链接: ~alexmiller) 我理解完全兼容的想法很好。但是说句实话,作为一个编写大量 CLJC 的用户,如果只提供 uuid 和 random-uuid(尤其是后者),将解决我 99% 的 UUID 需要,我想大多数人也是一样的。我们是不是可以从确保大家一定会用到的功能开始,而将详细的 UUID 设计问题放在单独的工单上呢?
uuid
random-uuid
评论由:alexmiller 发布
进行此操作的主要原因可能是可移植性。生成java.util.UUID看起来最有意义——这和ClojureScript中的操作是否协调一致?换句话说,用于创建和使用uuid的相同代码是否可以在两个平台上工作?如果不能,那么这样做可能没有很好的理由。
评论由:[email protected] 发布
生成java.util.UUID看起来最有意义——这和ClojureScript中的操作是否协调一致?
ClojureScript定义了自己独特的UUID类型,因为在JavaScript中没有这样的类型。[链接](https://github.com/clojure/clojurescript/blob/dd589037f242b4eaace113ffa28ab7b3791caf47/src/main/cljs/cljs/core.cljs#L10088-L10128)。我不太确定您所说的“协调一致”是什么意思。
换句话说,用于创建和 使用uuid的相同代码是否可以在两个平台上工作?
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 可以提供一些指导。