- 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 - 类型说明
- Elixir - 行为
- Elixir - 错误处理
- Elixir - 宏
- Elixir - 库
- Elixir 有用资源
- Elixir - 快速指南
- Elixir - 有用资源
- Elixir - 讨论
Elixir - 杂项运算符
除了上述运算符外,Elixir 还提供了一系列其他运算符,使其成为一种功能强大的语言。
连接运算符
Elixir 提供了一个字符串连接运算符,“<>”。它用于连接两个字符串。例如:
IO.puts("Hello"<>" "<>"world")
以上命令产生以下结果:
Hello World
匹配
匹配运算符“=”使用了该语言的模式匹配特性。我们将在后续关于模式匹配的章节中详细讨论此运算符。
请注意,“=”不仅是赋值运算符。当左值是变量,右值是字面量或另一个变量时,右边的值将绑定到变量,即进行赋值。但是,如果右边是变量,左边是字面量,则会发生模式匹配。当两个值都是字面量时也是如此。
固定
固定运算符“^”是一个一元运算符,用于在变量名前添加前缀。它确保在与匹配运算符一起使用时,该变量不会被赋值,而是与该值匹配。例如:
a = 12 #assignment a = 13 #assignment ^a = 13 #Pattern matching
管道
管道运算符“|>”的工作方式类似于 Unix shell 中的管道运算符。它允许我们将一个函数的输出传递到另一个函数。例如,如果我们需要将加法的结果传递到 IO.puts,我们将使用:
(4+3) |> IO.puts
运行上述程序时,会产生以下结果:
7
这将识别我们已将加法的结果传递到 IO.puts 函数。这将在您的控制台上打印 7。
字符串匹配
字符串匹配运算符“=~”在左边取一个字符串,在右边取一个字符串或正则表达式。如果右边的字符串是左边的子串,则返回 true。如果右边的正则表达式与左边的字符串匹配,则返回 true。否则返回 false。例如:
IO.puts("tutorialspoint" =~ "poi") IO.puts("tutorialspoint" =~ ~r/[a-z]*/) IO.puts("tutorialspoint" =~ ~r/[0-9]*/)
运行上述程序时,会产生以下结果:
true true true
请注意,Elixir 中的正则表达式以 '~r' 前缀开头。
代码点
它是一个一元运算符“?”,返回其右侧字符的 UTF-8 代码点。它只能取一个字符并接受转义序列。例如:
IO.puts(?a) IO.puts(?\s)
运行上述程序时,会产生以下结果:
97 32
捕获
捕获运算符“&”用于定义匿名函数时。我们将在函数章节中详细讨论。
三元运算符
Elixir 没有三元运算符。我们可以使用 if else 语句实现相同的功能:
a = if true, do: "True!", else: "False!"
包含
此运算符检查左边的项目是否存在于右边的可枚举结构中。例如,我们可以使用此运算符检查列表、元组等原子中是否存在原子:
:yes in [:true, :false, :yes]
以上语句返回 true,因为 :yes 存在于列表中。