美文网首页
Elixir-管道操作符

Elixir-管道操作符

作者: 你期待的花开 | 来源:发表于2018-11-14 17:36 被阅读18次

    管道操作符|>把前面表达式的结果传递给后面的表达式作为第一个参数。

    编程可以变得很混乱,比如函数调用有多层嵌套以至于很难阅读:

    foo(bar(baz(new_function(other_function()))))
    

    这个例子中,我们把 other_function/0的值传递给 new_function/1,把 new_function/1 的值传递给 baz/1,把 baz/1 的值传递给 bar/1,最后把bar/1的结果传递给foo/1。Elixir 给我们提供了管道操作符来解决这个语法上的混乱。管道操作符|> 获取一个表达式的结果,并把它往后传递。 我们把上面的代码用管道重写看看:

    other_function() |> new_function() |> baz() |> bar() |> foo()
    

    管道获取左边的值,并把它传递给右边。

    示例

    字符分组
    iex> "Elixir rocks" |> String.split()
    ["Elixir", "rocks"]
    
    把所有分组大写
    iex> "Elixir rocks" |> String.upcase() |> String.split()
    ["ELIXIR", "ROCKS"]
    
    检查尾部字符串
    iex> "elixir" |> String.ends_with?("ixir")
    true
    

    相关文章

      网友评论

          本文标题:Elixir-管道操作符

          本文链接:https://www.haomeiwen.com/subject/rmrqmftx.html