Elixir 管道操作符 |>

使用 |> 操作符可以写出更加漂亮的代码。

比如:

像这种代码

Elixir 管道操作符 |>_第1张图片

可以写成这样

Elixir 管道操作符 |>_第2张图片

在Elixir 中|>就管道操作符(pipeline)用来写管道风格的表达式,|> 把符号左边表达式的结果作为右边表达式的第一参数

例如:

iex> [1, [2], 3] |> List.flatten |> Enum.map(&(&1 * 2))
[2,4,6]

&(&1 * 2) 等价于 fn(x) -> x * 2 end)

这个例子等同于

Enum.map(List.flatten([1, [2], 3]), &(&1 * 2))

使用些符号时要注意操作符的优先级,比如下面的表达式:

String.graphemes "Hello" |> Enum.reverse

会被这样处理,

String.graphemes("Hello" |> Enum.reverse)

这样是会返回错误,因为 Enumerable protocol 对于二进制类型没有定义,应该下面的方式写,加括号:

String.graphemes("Hello") |> Enum.reverse

你可能感兴趣的:(elixir,管道)