这一切都类似于|
在unix 上使用运算符吗?根据文档,它是关于将第一个参数传递给函数,所以想知道这个运算符的重要性与传统方式在Pascal或C等任何函数语言中传递第一个参数相比.
另外,我们可以用这种方式传递变量参数吗?
管道运算符的主要好处是不是以嵌套方式调用多个函数
Enum.join(Enum.map(String.split("hello, world!", " "), &String.capitalize/1), " ")
或者有许多中间的"丢失变量"
string = "hello, world!" words = String.split(string, " ") capitalized_words = Enum.map(words, &String.capitalize/1) Enum.join(capitalized_words, " ")
你可以使用管道操作符来编写
"hello, world!" |> String.split(" ") |> Enum.map(&String.capitalize/1) |> Enum.join
最值得注意的是,参数现在非常接近接收它们的函数.此外,代码中函数调用的顺序类似于执行的顺序 - 从上到下而不是从内到外读取.最后,没有不必要的"丢失变量"可以降低噪音.
它不仅使您的代码更易于阅读,而且还会对您设计API的方式产生积极影响.它鼓励您将您的代码视为一系列数据转换,这在很多情况下会导致非常干净的解决方案.
另外,我们可以用这种方式传递变量参数吗?
不,您不能以这种方式传递多个参数 - 例如,您可以使用元组,通过单个参数传递多个值.