Show 例子
除了上述运算符之外,Elixir还提供了一系列其他运算符,使其成为一种非常强大的语言。
连接运算符
Elixir提供了一个字符串连接运算符'<>'。 这用于连接2个字符串。 例如,
IO.puts("Hello"<>" "<>"world")
以上命令生成以下结果 -
Hello World
Match
匹配运算符'='使用该语言的模式匹配功能。 我们将在随后的模式匹配章节中详细讨论该运算符。
请注意,=不仅是一个赋值运算符。 当我们将左值作为变量而右值作为文字或另一个变量时,右边的值绑定到变量,即进行赋值。 但是如果右边有一个变量,左边有文字,就会发生模式匹配。 两个值都是文字的情况也是如此。
Pin
引脚运算符'^'是通过为变量名添加前缀而使用的一元运算符。 它确保与匹配运算符一起使用时的变量未分配值,但与该值匹配。 例如,
a = 12 #assignment
a = 13 #assignment
^a = 13 #Pattern matching
Pipe
管道运算符'|>'的工作方式与Unix shell中的管道运算符类似。 它允许我们将输出从一个函数传递到另一个函数。 例如,如果我们需要在IO.puts管道添加结果,我们将使用 -
(4+3) |> IO.puts
在程序上运行时,会产生以下结果 -
7
这将认识到我们已经在IO.puts函数中添加了添加结果。 这将在您的控制台上打印7。
字符串匹配
字符串匹配运算符'=〜'在左侧采用字符串,在右侧采用字符串或正则表达式。 如果右边的字符串是left的子字符串,则返回true。 如果右侧的正则表达式与左侧的字符串匹配,则返回true。 否则返回false。 例如,
IO.puts("iowiki" =~ "poi")
IO.puts("iowiki" =~ ~r/[a-z]*/)
IO.puts("iowiki" =~ ~r/[0-9]*/)
在程序上运行时,会产生以下结果 -
true
true
true
请注意,正则表达式以Elixir中的'~r'前缀开头。
代码点
这是一个一元的运算符,'?' 它将字符的UTF-8代码点立即返回到其右侧。 它只能使用一个字符并接受转义序列。 例如,
IO.puts(?a)
IO.puts(?\s)
在程序上运行时,会产生以下结果 -
97
32
Capture
捕获运算符'&'用于定义匿名函数。 我们将在函数章节中详细讨论这个问题。
Ternary
Elixir没有三元运算符。 我们可以使用if else语句实现相同的功能 -
a = if true, do: "True!", else: "False!"
在
此运算符检查右侧的可枚举结构中是否存在左项。 例如,我们可以使用此运算符检查原子的列表,元组等中的原子 -
:yes in [:true, :false, :yes]
上面的语句返回true :yes列表中存在:yes 。