欢迎!请查看关于页面以获取有关这是如何工作的更多信息。
ClojureScript有{{uuid}}和{{random-uuid}}函数。这些在ClojureScript中有用,我认为在Clojure中也很实用,可以提高代码的可移植性。这个补丁有兴趣吗?
评论者:wilkerlucio
(链接:~alexmiller) 我理解使其完全兼容的想法很棒。但说实话,作为一个编写大量CLJC的用户,如果我们只有uuid和random-uuid(尤其是后者),就可以解决我99%的UUID需求,我认为对于大多数人来说也是一样。我们不能先添加那些对于所有使用者的肯定胜利,而把详细设计的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、美化打印- 读取- 哈希码- 转换到/从位- 转换到/从字符串- 提取组件
然后我认为考虑将这些放在core与data.uuid或其他项目中更有意义。
我认为最好是在设计页面上进行这项工作(这个补丁只是更大问题的一个单元)。也许http://dev.clojure.org/pages/viewpage.action?pageId=950382可以提供一些指导。