首页 > 其他分享 >无涯教程-Clojure - dosync函数

无涯教程-Clojure - dosync函数

时间:2023-10-29 16:32:09浏览次数:43  
标签:clojure dosync 示例 表达式 无涯 names Clojure change

在包含表达式和任何嵌套调用的事务中运行表达式,如果没有任何线程在该线程上运行,则启动事务,任何未捕获的异常都将中止事务,并退出dosync。

dosync - 语法

(dosync expression)

参数      -  "expression"是一组表达式,将出现在dosync块中。

返回值  - 无。

dosync - 示例

以下程序显示了有关如何使用它的示例。

(ns clojure.examples.example
   (:gen-class))
(defn Example []
   (def names (ref []))
   
   (defn change [newname]
      (dosync
         (alter names conj newname)))
   (change "Leanfk")
   (change "Toolfk")
   (println @names))
(Example)

上面的程序产生以下输出。

[Learnfk Toolfk]

参考链接

https://www.learnfk.com/clojure/clojure-dosync.html

标签:clojure,dosync,示例,表达式,无涯,names,Clojure,change
From: https://blog.51cto.com/u_14033984/8080859

相关文章

  • 无涯教程-Clojure - ref函数
    这用于创建参考值。创建参考值时,有一个提供验证器函数的选项,该函数将验证创建的值。ref-语法(refxoptions)参数   - "x"是需要提供给参考的值,"options"是可以提供的一组选项。返回值- 引用及其对应的值。ref-示例以下程序显示了有关如何使用它的示例。(......
  • 无涯教程-Clojure - agent-error函数
    如果代理失败,则返回在代理的异步操作期间抛出的异常,如果代理没有失败,则返回nil。agent-error-语法(agent-erroragentname)参数   - "agentname"是应该为其设置agent-error函数的代理。返回值 - 如果代理失败,则返回在代理的异步操作过程中引发的异常。如果代......
  • 无涯教程-Clojure - Adding a New Key to the Structure函数
    由于结构是不可变的,因此可以将另一个键添加到结构中的唯一方法是创建新结构。示例(nsclojure.examples.example(:gen-class))(defnExample[](defstructEmployee:EmployeeName:Employeeid)(defemp(struct-mapEmployee:EmployeeName"Learnfk":Employeei......
  • 无涯教程-Clojure - send-off函数
    在某些情况下,为代理分配了实际上是阻止的函数。一个简单的示例是,考虑您正在从本质上是阻塞的文件中读取内容。send-off-语法(sendagentnamefunctionvalue)参数   - "agentname"是将发送函数重定向到的代理,"function"用于确定更改代理价值的方式,"value"是传递......
  • 无涯教程-Clojure - Immutable Nature函数
    默认情况下,结构也是不可变的,因此,如果我们尝试更改特定键的值,则它不会更改。Immutable-示例(nsclojure.examples.example(:gen-class))(defnExample[](defstructEmployee:EmployeeName:Employeeid)(defemp(struct-mapEmployee:EmployeeName"Learnfk"......
  • 无涯教程-Clojure - Accessing Individual Fields函数
    可以通过与结构对象一起访问键来访问结构的各个字段。AccessingIndividual-语法:keystructure-name参数   - "key"是结构中的键值,"structure-name"是作为相应关键字的结构。返回值 - 将返回与键关联的值。以下程序显示了有关如何使用它的示例。AccessingI......
  • 无涯教程-Clojure - struct-map函数
    通过显式定义将哪些值分配给结构中的哪些键,此函数用于将值专门分配给键值。struct-map-语法(struct-mapstructnamekeynvaluen….)参数   - "structname"是要赋予结构的名称,"keyn和valuen"是需要分配给该结构的键值。返回值 - 返回一个结构对象,其值映射......
  • 无涯教程-Clojure - defstruct函数
    该函数用于定义所需的结构。defstruct-语法(defstructstructnamekeys)参数   - "structname"是要赋予结构的名称,"keys"是需要作为结构一部分的键。返回值 - 返回结构对象。defstruct-示例以下程序显示了有关如何使用它的示例。(nsclojure.examples.......
  • 无涯教程-Clojure - vary-meta函数
    返回与原始对象具有相同类型和值的对象,但具有组合的元数据。vary-meta-语法(vary-metaobjnew-meta)参数   - 'obj'是要检查是否有任何元数据与之关联的对象,"new-meta"是需要与对象关联的元数据值。返回值 -返回与原始对象具有相同类型和值的对象,但具有组合......
  • 无涯教程-Clojure - meta-with函数
    此函数用于定义任何对象的元数据映射。meta-with-语法(with-metaobjmapentry)参数   - 'obj'是需要与元数据关联的对象,"mapentry"是需要与对象相关联的元数据。返回值 - 返回与obj具有相同类型和值的对象,并以mapentry作为其元数据。meta-with-示例(nscl......