首页 > 其他分享 >无涯教程-Clojure - 原子(Atoms)

无涯教程-Clojure - 原子(Atoms)

时间:2023-10-23 21:31:37浏览次数:41  
标签:clojure Atoms 无涯 新值 原子 atom Clojure example

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

原子是通过atom方法创建的。

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

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

1

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

Sr.No. Operations & 描述
1 reset!

在不考虑当前值的情况下将atom的值设置为新值。

2 compare-and-set!

当且仅当原子的当前值与原子保持的旧值相同时,才以原子方式将原子的值设置为新值。如果发生设置,则返回true,否则返回false。

3 swap!

根据特定函数以原子方式将原子的值交换为新值。

参考链接

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

标签:clojure,Atoms,无涯,新值,原子,atom,Clojure,example
From: https://blog.51cto.com/u_14033984/7994493

相关文章

  • 无涯教程-Clojure - 日期&时间
    由于Clojure框架是从Java类派生的,因此可以使用Clojure中Java中可用的日期时间类,以下是可用于日期时间类的方法。java.util.Date这用于在Clojure中创建日期对象。java.util.Date.以下程序显示了有关如何使用它的示例。(nsexample)(defnExample[](defdate(.toStrin......
  • 无涯教程-Clojure - 正则表达式
    正则表达式是一种用于在文本中查找子字符串的模式,正则表达式用于各种编程语言中,并在LISP类型的编程语言中使用很多。以下是正则表达式的示例。//d+上面的正则表达式用于查找字符串中数字的另一个出现。//字符用于确保字符"d"和"+"用于表示正则表达式。以下方法可用于正则......
  • 无涯教程-Clojure - 序列
    序列是在"seq"命令的帮助下创建的。以下是一个简单的序列创建示例。(nsclojure.examples.example(:gen-class));;ThisprogramdisplaysHelloLearnfk(defnExample[](println(seq[123])))(Example)上面的程序产生以下输出。(123)以下是可用于序列的......
  • 无涯教程-Clojure - 文件I/O
    使用I/O时,Clojure提供了许多辅助方法。读取文件(Readingfiles)写入文件(Writingtofiles)查看文件是文件还是目录让我们探讨Clojure提供的一些文件操作。读取内容如果要以字符串形式获取文件的全部内容,可以使用clojure.core.slurp方法。slurp命令打开文件并读取其所有......
  • 无涯教程-Clojure - 环境设置
    使用Clojure作为编程语言有多种方法。我们将研究两种使用Clojure编程的方法。Leiningen     - 使用Leiningen创建,构建和自动化Clojure项目的重要工具。EclipsePlugin - 使用CounterClockwise的插件,可用于Eclipse在EclipseIDE中进行Clojure开发。Leininge......
  • 无涯教程-Clojure - 简介
    Clojure(/ˈkloʊʒər/)是Lisp编程语言在Java平台上的现代、动态及函数式方言。与其他Lisp一样,Clojure视代码为数据且拥有一套Lisp宏系统。其开发过程目前由社区驱动,其作者里奇·希基(RichHickey)则以终身仁慈独裁者(BDFL)的身份进行监督。Clojure提倡不可变性(immutability......
  • 无涯教程-AWK - 位操作函数
    AWK具有以下内置位处理函数-and与运算执行按位与运算。[Learnfk]$awk'BEGIN{num1=10num2=6printf"(%dAND%d)=%d\n",num1,num2,and(num1,num2)}'在执行此代码时,您将获得以下输出-(10AND6)=2compl补码运算它执行按位补码运算。[Learnfk]$awk'BE......
  • 无涯教程-AWK - 时间函数
    AWK具有以下内置时间函数-该函数返回当前的当前时间,该时间是自Epoch(在POSIX系统上为1970-01-0100:00:00UTC)以来的秒数。[Learnfk]$awk'BEGIN{print"NumberofsecondssincetheEpoch="SYSTIME()}'在执行此代码时,您将获得以下输出-Numberofsecondssincethe......
  • 无涯教程-AWK - 字符串函数
    AWK具有以下内置String函数-asort(arr[,d[,how]]) 此函数使用GAWK的常规规则对arr的内容进行排序以比较值,并使用从1开始的连续整数替换排序后的值arr的索引。[Learnfk]$awk'BEGIN{arr[0]="Three"arr[1]="One"arr[2]="Two"print"Arrayelementsbefo......
  • 无涯教程-AWK - 正则表达式运算符函数
    本示例说明了正则表达式运算符的两种形式。Match它表示为〜,它查找包含匹配字符串的字段,如,以下示例将打印包含模式9的行。[Learnfk]$awk'$0~9'marks.txt在执行此代码时,您将获得以下输出-2)ToolfkMaths905)NesfkHistory89不匹配它表示为!〜,它查找不包......