gpt4 book ai didi

elixir - |> lix剂中的管道运算符如何工作?

转载 作者:行者123 更新时间:2023-12-04 16:42:32 25 4
gpt4 key购买 nike

这是否与在Unix上使用|运算符相似?根据doc,它是关于将第一个参数传递给函数的,因此想知道与使用任何函数式语言(如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的方式。它鼓励您将代码视为对数据的一系列转换,这在许多情况下会导致非常干净的解决方案。

Also, can we pass variable argument using this way?



不,您不能以这种方式传递多个参数-尽管您可以使用一个元组(例如,通过一个参数传递多个值)。

关于elixir - |> lix剂中的管道运算符如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41584737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com