- 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 提供了一个字符串连接运算符“<>”。这用于连接 2 个字符串。例如,
IO.puts("Hello"<>" "<>"world")
上述命令生成以下结果 -
Hello World
匹配
匹配运算符“=”利用了语言的模式匹配功能。我们将在后续模式匹配章节中详细讨论该运算符。
请注意,= 不仅仅是一个赋值运算符。当我们将左侧值作为变量并将右侧值作为文字或另一个变量时,右侧的值将绑定到该变量,即发生赋值。但如果我们在右侧有一个变量,在左侧有一个文字,就会发生模式匹配。当两个值都是文字时,情况也是如此。
别针
pin 运算符“^”是一元运算符,用于为变量名称添加前缀。它确保变量与匹配运算符一起使用时不会被分配值,而是与该值匹配。例如,
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 。