语法:hash(pound)then symbol

时间:2012-06-09 10:45:35

标签: clojure datomic

我正在关注Datomic示例模式,并且有一个定义为

的实体的ID
:db/id #db/id[:db.part/db]

#db / id 的含义是什么?模式加载了read-string,所以我猜它是有效的Clojure语法。

2 个答案:

答案 0 :(得分:8)

这是Clojure 1.4中的新功能:a reader literal

答案 1 :(得分:1)

Jouni是对的,它是reader literal

更具体地说,读者文字 #db / id [:db.part / db] 将在:db.part / db 分区中创建临时实体ID

构建事务时可以使用此临时ID。如果事务成功应用于数据库(即“事务处理”),则临时ID将被数据库中的永久实体ID替换。

此特定读者文字的一般形式是 #db / id [partition-name value *] ,其中value是一个可选的负值,允许临时id在其中唯一且确定性地区分单笔交易。

这是一个很大的便利,例如。 #db / id [:db.part / user -300] 可以在特定事务中的多个位置使用,以引用同一个尚未创建的实体。