[英]What does “|>” mean in elixir?
我正在阅读github上的一些代码elixir代码,我看到|>
经常使用。 它不会出现在文档站点的操作列表中。 这是什么意思?
即
expires_at: std["expires_in"] |> expires_at,
这是管道操作员 。 来自链接的文档:
该运算符在左侧引入表达式作为右侧函数调用的第一个参数。
例子
iex>
[1, [2], 3] |> List.flatten()
[1, 2, 3]
上面的例子与调用
List.flatten([1, [2], 3])
。
它使您能够避免像这样的错误代码:
orders = Order.get_orders(current_user)
transactions = Transaction.make_transactions(orders)
payments = Payment.make_payments(transaction, true)
使用管道运算符的相同代码
current_user
|> Order.get_orders
|> Transaction.make_transactions
|> Payment.make_payments(true)
看看Payment.make_payments函数,有第二个bool参数,如果那是第一个参数,就像这样:
def make_payments(bool_parameter, transactions) do
//function
end
它不再有用了。
在开发elixir应用程序时请记住,重要参数应该放在首位,将来它将使您能够使用管道操作员。
在编写非elixir代码时,我讨厌这个问题:我该怎么命名这个变量? 我浪费了很多时间来回答。
除了Stefan的出色响应之外,您可能还需要阅读此博客文章中名为“管道运算符”的部分,以便更好地理解管道运营商打算在Elixir中解决的用例。 重要的是这个:
管道运算符使得可以在不使用中间变量的情况下组合各种操作。 。 。从上到下阅读代码很容易。 我们通过各种转换传递状态以获得所需的结果,每个转换返回一些状态的修改版本。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.