在Clojure中@(at符号)是什么意思?

Fel*_*ipe 14 clojure datomic

我找到了这行Clojure代码:@(d/transact conn schema-tx).它是一个创建数据库模式的Datomic语句.由于难以搜索"@"等字符,我在Google上找不到任何相关内容.

'at'符号在第一个括号之前是什么意思?

Ben*_*aus 9

这是deref 宏字符.您在Datomic的背景下寻找的是:

http://docs.datomic.com/transactions.html

处理交易下:

在Clojure中,您还可以使用deref方法或@来获取事务的结果.

有关Clojure中deref的更多信息,请参阅:

http://clojuredocs.org/clojure_core/clojure.core/deref


pet*_*oak 6

这是Clojure默认语法和"糖"(即宏定义)的有用概述.

http://java.ociweb.com/mark/clojure/article.html#Overview

您将找到解释数字符号#,表示正则表达式或哈希映射,插入符号^,用于元数据,以及更多"at符号" @.它是用于解除引用的糖形式,这意味着您可以获得引用所指向的实际值.

Clojure有三种参考类型:Refs,Atoms和Agents.

http://clojure-doc.org/articles/language/concurrency_and_parallelism.html#clojure-reference-types

您的术语@(d/transact conn schema-tx)似乎提供了对原子的引用,并且通过at符号@延迟并因此获得此引用指向的值.

顺便说一下,如果你看看"Clojure at sign",你会发现搜索引擎的结果.但它需要一些耐心;-)