欢迎!请查看 关于 页面了解有关此功能的更多详细信息。
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可以提供一些指导。