- Clojure 教程
- Clojure - 主页
- Clojure - 概述
- Clojure - 环境
- Clojure - 基本语法
- Clojure-REPL
- Clojure - 数据类型
- Clojure - 变量
- Clojure - 运算符
- Clojure - 循环
- Clojure - 决策
- Clojure - 函数
- Clojure - 数字
- Clojure - 递归
- Clojure - 文件 I/O
- Clojure - 字符串
- Clojure - 列表
- Clojure - 集
- Clojure - 向量
- Clojure - 地图
- Clojure - 命名空间
- Clojure - 异常处理
- Clojure - 序列
- Clojure - 正则表达式
- Clojure - 谓词
- Clojure - 解构
- Clojure - 日期和时间
- Clojure - 原子
- Clojure - 元数据
- Clojure - 结构映射
- Clojure - 代理
- Clojure - 观察者
- Clojure - 宏
- Clojure - 参考值
- Clojure - 数据库
- Clojure - Java 接口
- Clojure - 并发编程
- Clojure - 应用程序
- Clojure - 自动化测试
- Clojure - 库
- Clojure 有用资源
- Clojure - 快速指南
- Clojure - 有用的资源
- Clojure - 讨论
Clojure - 运算符
运算符是告诉编译器执行特定数学或逻辑操作的符号。
Clojure 有以下类型的运算符 -
- 算术运算符
- 关系运算符
- 逻辑运算符
- 按位运算符
注意- 在 Clojure 中,运算符和操作数按以下语法方式工作。
句法
(operator operand1 operand2 operandn)
例如,
例子
(+ 1 2)
上面的示例对数字 1 和 2 进行算术运算。
算术运算符
Clojure 语言与任何语言一样支持普通算术运算符。以下是 Clojure 中可用的算术运算符。
操作员 | 描述 | 例子 |
---|---|---|
+ | 两个操作数相加 | (+ 1 2) 将给出 3 |
- | 从第一个操作数中减去第二个操作数 | (- 2 1) 将给出 1 |
* | 两个操作数相乘 | (* 2 2) 将给出 4 |
/ | 分子除以分母 | (float (/ 3 2)) 将给出 1.5 |
公司 | 增量运算符用于将操作数的值加 1 | inc 5 将给出 6 |
十二月 | 增量运算符用于将操作数的值减 1 | 12月5日将给出4 |
最大限度 | 返回其参数中最大的一个 | 最大 1 2 3 将返回 3 |
分钟 | 返回其参数中最小的一个 | 分钟 1 2 3 将返回 1 |
雷姆 | 第一个数除以第二个数的余数 | rem 3 2 将给出 1 |
关系运算符
关系运算符允许比较对象。以下是 Clojure 中可用的关系运算符。
操作员 | 描述 | 例子 |
---|---|---|
= | 测试两个对象之间的相等性 | (= 2 2) 将给出 true |
不= | 测试两个对象之间的差异 | (not = 3 2) 将给出 true |
< | 检查左侧对象是否小于右侧操作数 | (< 2 3) 将给出 true |
<= | 检查左侧对象是否小于或等于右侧操作数 | (<= 2 3) 将给出 true |
> | 检查左侧对象是否大于右侧操作数 | (> 3 2) 将给出 true |
>= | 检查左侧对象是否大于或等于右侧操作数 | (>= 3 2) 将给出 true |
逻辑运算符
逻辑运算符用于计算布尔表达式。以下是 Groovy 中可用的逻辑运算符。
操作员 | 描述 | 例子 |
---|---|---|
和 | 这是逻辑“与”运算符 | (或 true true)将给出 true |
或者 | 这是逻辑“或”运算符 | (和 true false)将给出 false |
不是 | 这是逻辑“非”运算符 | (不是假的)会给出真实的 |
以下代码片段显示了如何使用各种运算符。
按位运算符
Clojure 提供了四个按位运算符。以下是 Clojure 中可用的按位运算符。
先生。 | 运算符及描述 |
---|---|
1 |
位与 这是按位“与”运算符 |
2 |
位或 这是按位“或”运算符 |
3 |
位异或 这是按位“异或”或互斥“或”运算符 |
4 |
位不 这是按位求反运算符 |
以下是显示这些运算符的真值表。
p | q | p&q | p| q | p^q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
运算符优先级
与 LISP 的一般情况一样,无需担心运算符优先级。这是 S 表达式和前缀表示法的好处之一。所有函数均从左到右、从内到外进行计算。Clojure 中的运算符只是函数,所有内容都完全用括号括起来。