欢迎!请查看关于页面了解更多这方面的信息。
ClojureScript 有 {{uuid}} 和 {{random-uuid}} 函数。这些函数在 ClojureScript 中非常方便,我认为在 Clojure 中也很有用,可以提高代码的可移植性。对此有兴趣吗?提供补丁的意愿如何?
评论者:wilkerlucio
(链接: ~alexmiller) 我明白让它们完全兼容将会很好。但坦诚地说,作为一个经常编写 CLJC 的用户,如果我们只是有了 uuid 和 random-uuid (特别是后者),将解决我 99% 的 UUID 需要,我想对大多数人来说也是如此。我们不能从那些对所有人使用的肯定获胜的人开始,将详细的 UUID 设计留在一个单独的条目上吗?
uuid
random-uuid
由:alexmiller 发表评论
我认为做这件事情的主要原因是为了可移植性。最合理的方法是生成java.util.UUIDs - 这是否与ClojureScript中的做法相调和?也就是说,创建和**使用**uuids的相同代码是否能在两个平台上工作?如果不能,那么可能没有很好的理由去做这件事。
评论来自:[email protected]
最合理的方法是生成java.util.UUIDs - 这是否与ClojureScript中的做法相调和?
ClojureScript定义了自己的UUID类型,因为JavaScript中没有。《a rel="nofollow" href="https://github.com/clojure/clojurescript/blob/dd589037f242b4eaace113ffa28ab7b3791caf47/src/main/cljs/cljs/core.cljs#L10088-L10128" target="_blank" class="text-database-link">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可以提供一些指导。