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
inc 增量运算符用于将操作数的值增加 1 inc 5 将给出 6
dec 增量运算符用于将操作数的值减 1 dec 5 将给出 4
max 返回其参数中最大的 最大 1 2 3 将返回 3
min 返回其参数中最小的 max 1 2 3 将返回 1
rem 第一个数字除以第二个数字的余数 rem 3 2 将给出 1

关系运算符

关系运算符允许比较对象。 以下是 Clojure 中可用的关系运算符。

显示示例

运算符 描述 示例
= 测试两个对象之间的相等性 (= 2 2) 将给出 true
not= 测试两个对象之间的差异 (not = 3 2)将给出 true
< 检查左侧对象是否小于右侧操作数 (< 2 3) 将给出 true
<= 检查左侧对象是否小于或等于右侧操作数 (<= 2 3) 将给出 true
> 检查左侧对象是否大于右侧操作数 (> 3 2) 将给出 true
>= 检查左侧对象是否大于或等于右侧操作数 (>= 3 2) 将给出 true

逻辑运算符

逻辑运算符用于计算布尔表达式。 以下是 Groovy 中可用的逻辑运算符。

显示示例

运算符 描述 示例
and 这是逻辑"与"运算符 (or true true) 将给出 true
or 这是逻辑"或"运算符 (and true false) 将给出 false
not 这是逻辑"非"运算符 (not false) 将给出 true

以下代码片段显示了如何使用各种运算符。

按位运算符

Clojure 提供了四种按位运算符。 以下是 Clojure 中可用的按位运算符。

显示示例

序号 运算符 & 描述
1

bit-and

这是按位"与"运算符

2

bit-or

这是按位"或"运算符

3

bit-xor

这是按位"异或"或独占"或"运算符

4

bit-not

这是按位求反运算符

以下是展示这些运算符的真值表。

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 中的运算符只是函数,所有内容都完全用括号括起来。