当前位置: 首页 > 文档资料 > Clojure 中文教程 >

Atoms

优质
小牛编辑
117浏览
2023-12-01

Atoms是Clojure中的一种数据类型,它提供了一种管理共享,同步,独立状态的方法。 原子就像任何其他编程语言中的任何引用类型一样。 原子的主要用途是保存Clojure的不可变数据结构。 原子持有的值随swap! method而改变swap! method swap! method

在内部,交换! 读取当前值,将函数应用于它,并尝试对其进行比较和设置。由于另一个线程可能在中间时间内更改了值,因此可能必须重试,并在旋转循环中执行此操作。 实际效果是,该值始终是将所提供函数应用于当前值的结果。

例子 (Example)

原子是在原子方法的帮助下创建的。 以下程序中显示了相同的示例。

(ns clojure.examples.example
   (:gen-class))
(defn example []
   (def myatom (atom 1))
   (println @myatom))
(example)

输出 (Output)

上述程序产生以下结果。

1

使用@符号访问atom的值。 Clojure有一些可以对原子执行的操作。 以下是操作。

Sr.No.操作和描述
1reset!

将atom的值设置为新值,而不考虑当前值。

2compare-and-set!

当且仅当原子的当前值与原子持有的旧值相同时,原子上将atom的值设置为新值。 如果set发生则返回true,否则返回false。

3swap!

原子地将原子的值与基于特定函数的新值进行交换。