📜  Elixir-运算符(1)

📅  最后修改于: 2023-12-03 14:40:58.178000             🧑  作者: Mango

Elixir 运算符

Elixir 提供了许多运算符来进行数学运算、判断、逻辑运算等,本文将逐一介绍这些运算符及其使用方法。

算术运算符

Elixir 提供了基本的加、减、乘、除以及余数取模等算术运算符,如下所示:

| 运算符 | 描述 | 例子 | 结果 | |-------|--------------------------------|------------------------------------------|------------------------| | + | 加法 | 2 + 3 | 5 | | - | 减法 | 5 - 2 | 3 | | * | 乘法 | 2 * 3 | 6 | | / | 除法 | 10 / 3 | 3.3333333333333335 | | div | 整除取商 | div(10, 3) | 3 | | rem | 取余数 | rem(10, 3) | 1 |

其中,div 表示整除取商,rem 表示取余数。需要注意的是,这些运算符也支持大整数运算,即超出一定的数值范围也能继续进行运算。

比较运算符

Elixir 提供了比较大小的运算符,如下所示:

| 运算符 | 描述 | 例子 | 结果 | |-------|--------------------------------|------------------------------------------|------------------| | == | 等于 | 1 == 1 | true | | != | 不等于 | 1 != 2 | true | | > | 大于 | 3 > 2 | true | | < | 小于 | 2 < 3 | true | | >= | 大于等于 | 3 >= 3 | true | | <= | 小于等于 | 2 <= 2 | true |

其中,==!= 运算符是针对任意类型进行比较的,而其他比较运算符只支持数字类型进行比较。

逻辑运算符

Elixir 支持逻辑运算,如下所示:

| 运算符 | 描述 | 例子 | 结果 | |-------|--------------------------------|------------------------------------------|------------------| | not | 非 | not true | false | | and | 与 | true and false | false | | or | 或 | true or false | true |

需要注意的是,逻辑运算符 andor 是短路运算符,即当第一个表达式能够确定整个表达式的结果时,不会继续计算后面的表达式。

位运算符

Elixir 支持进制转换和位运算,如下所示:

| 运算符 | 描述 | 例子 | 结果 | |-------|--------------------------------|------------------------------------------|------------------| | << | 左移 | 1 << 1 | 2 | | >> | 右移 | 2 >> 1 | 1 | | band | 与 | 2 band 3 | 2 | | bor | 或 | 2 bor 3 | 3 | | bxor | 异或 | 2 bxor 3 | 1 | | bnot | 取反 | bnot(2) | -3 |

需要注意的是,位运算符只能应用于整数类型。

变量绑定运算符

Elixir 中使用 = 进行变量绑定,即将一个值绑定到一个变量上。例如:

x = 1

这个操作会将整数 1 绑定到变量 x 上面。需要注意的是,Elixir 中的变量绑定是不可变的。

|> 运算符

Elixir 中的 |> 运算符被称为管道运算符,可以将一个表达式的结果传递给另一个函数进行处理。例如:

1 |> IO.inspect |> IO.puts

这个操作首先将整数 1 传递给 IO.inspect 函数进行输出调试,然后返回结果,再将结果传递给 IO.puts 函数进行输出。

.. 运算符

Elixir 中的 .. 运算符可以用来表示一个范围内的值。例如:

1..5

这个操作表示包括 15 的整数范围。

总结

Elixir 提供了许多基本运算符,可以用来进行数学运算、比较大小、逻辑运算及位运算等,还有一些特殊的运算符如变量绑定运算符、管道运算符和范围运算符等。使用这些运算符可以简化代码并提高效率,非常适合进行函数式编程。