- Elixir 教程
- Elixir - 主页
- Elixir - 概述
- Elixir - 环境
- Elixir - 基本语法
- Elixir - 数据类型
- Elixir - 变量
- Elixir - 操作员
- Elixir - 模式匹配
- Elixir - 决策
- Elixir - 弦乐
- Elixir - 角色列表
- Elixir - 列表和元组
- Elixir - 关键字列表
- Elixir - 地图
- Elixir - 模块
- Elixir - 别名
- Elixir - 功能
- Elixir - 递归
- Elixir - 循环
- Elixir - 可枚举
- Elixir - 流
- Elixir - 结构
- Elixir - 协议
- Elixir - 文件 I/O
- Elixir - 流程
- 长生不老药 - 印记
- Elixir - 领悟
- Elixir - 类型规格
- Elixir - Behave
- Elixir - 错误处理
- Elixir - 宏
- Elixir - 图书馆
- Elixir 有用资源
- Elixir - 快速指南
- Elixir - 有用的资源
- Elixir - 讨论
Elixir - 操作员
运算符是告诉编译器执行特定数学或逻辑操作的符号。Elixir 提供了很多运算符。它们分为以下几类 -
- 算术运算符
- 比较运算符
- 布尔运算符
- 杂项运算符
算术运算符
下表列出了 Elixir 语言支持的所有算术运算符。假设变量A为 10,变量B为 20,则 -
操作员 | 描述 | 例子 |
---|---|---|
+ | 添加 2 个数字。 | A + B 将为 30 |
- | 从第一个数字中减去第二个数字。 | AB 会给出-10 |
* | 两个数字相乘。 | A*B 会给 200 |
/ | 将第一个数字除以第二个数字。这会将数字转换为浮点数并给出浮点数结果 | A/B 给出 0.5。 |
分区 | 该函数用于获取除法的商。 | div(10,20) 将给出 0 |
雷姆 | 该函数用于获取除法的余数。 | rem(A, B) 将给出 10 |
比较运算符
Elixir 中的比较运算符与大多数其他语言中提供的比较运算符大多相同。下表总结了 Elixir 中的比较运算符。假设变量A为 10,变量B为 20,则 -
操作员 | 描述 | 例子 |
---|---|---|
== | 检查左侧的值是否等于右侧的值(如果类型不同,则类型转换值)。 | A == B 将给出 false |
!= | 检查左侧的值是否不等于右侧的值。 | A != B 将给出 true |
=== | 检查左侧值的类型是否等于右侧值的类型,如果是,则检查相同的值。 | A === B 会给出 false |
!== | 与上面相同,但检查不平等而不是平等。 | A !== B 将给出 true |
> | 检查左操作数的值是否大于右操作数的值;如果是,则条件成立。 | A > B 将给出 false |
< | 检查左操作数的值是否小于右操作数的值;如果是,则条件成立。 | A < B 将给出 true |
>= | 检查左操作数的值是否大于或等于右操作数的值;如果是,则条件成立。 | A >= B 将给出 false |
<= | 检查左操作数的值是否小于或等于右操作数的值;如果是,则条件成立。 | A <= B 将给出 true |
逻辑运算符
Elixir 提供 6 个逻辑运算符:and、or、not、&&、|| 和 !。前三个and or not是严格的布尔运算符,这意味着它们希望第一个参数是布尔值。非布尔参数将引发错误。接下来的三个,&&,|| 和 !不严格,不要求我们将第一个值严格作为布尔值。他们的工作方式与严格的同行相同。假设变量A为真且变量B为 20,则 -
操作员 | 描述 | 例子 |
---|---|---|
和 | 检查提供的两个值是否为真,如果是,则返回第二个变量的值。(逻辑与)。 | A和B各给20 |
或者 | 检查提供的任一值是否为真。返回真实值。否则返回 false。(逻辑或)。 | A 或 B 将给出 true |
不是 | 一元运算符反转给定输入的值。 | 不 A 会给出 false |
&& | 非严格的和. 与 and工作相同,但不期望第一个参数是布尔值。 | B&&A 会给 20 |
|| | 非严格或. 与or作用相同,但不期望第一个参数是布尔值。 | 乙|| A将给出真实的 |
! | 非严格不。工作方式与not相同,但不期望参数是布尔值。 | !A 会给出 false |
注意 -和、或、&&和|| || 是短路操作员。这意味着如果and的第一个参数为 false,则它将不会进一步检查第二个参数。如果or的第一个参数为 true,则它不会检查第二个参数。例如,
false and raise("An error") #This won't raise an error as raise function wont get executed because of short #circuiting nature of and operator
按位运算符
位运算符作用于位并执行逐位运算。Elixir 提供了按位模块作为Bitwise包的一部分,因此为了使用这些模块,您需要使用按位模块。要使用它,请在 shell 中输入以下命令 -
use Bitwise
对于以下示例,假设 A 为 5,B 为 6 -
操作员 | 描述 | 例子 |
---|---|---|
&&& | 如果两个操作数中都存在,则按位与运算符会复制一个位到结果中。 | A &&& B 将给出 4 |
||| | 按位或运算符复制一个位到结果(如果它存在于任一操作数中)。 | 一个||| B 给 7 |
>>> | 按位右移运算符将第一个操作数位向右移动第二个操作数中指定的数字。 | A >>> B 将给出 0 |
<<< | 按位左移运算符将第一个操作数位向左移动第二个操作数中指定的数字。 | A <<< B 将给出 320 |
^^^ | 仅当两个操作数上的位不同时,按位异或运算符才会复制一个位到结果。 | A ^^^ B 给出 3 |
~~~ | 一元按位不反转给定数字的位。 | ~~~A将给出-6 |
杂项运算符
除了上述运算符之外,Elixir 还提供了一系列其他运算符,例如串联运算符、匹配运算符、Pin 运算符、管道运算符、字符串匹配运算符、代码点运算符、捕获运算符、三元运算符,使其成为一门非常强大的语言。