目录

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

↑回到顶部↑
WIKI教程 @2018