当前位置: 首页 > 编程笔记 >

Elixir管道运算符

冷正信
2023-03-14
本文向大家介绍Elixir管道运算符,包括了Elixir管道运算符的使用技巧和注意事项,需要的朋友参考一下

示例

管道运算符|>采用左侧表达式的结果,并将其作为第一个参数输入右侧的函数。

expression |> function

使用管道运算符将表达式链接在一起,并直观地记录一系列功能的流程。

考虑以下:

Oven.bake(Ingredients.Mix([:flour, :cocoa, :sugar, :milk, :eggs, :butter]), :temperature)

在示例中,Oven.bake出现在之前Ingredients.mix,但是最后执行。此外,它可能不是很明显这:temperature是一个参数Oven.bake

使用管道运算符重写此示例:

[:flour, :cocoa, :sugar, :milk, :eggs, :butter]
|> Ingredients.mix
|> Oven.bake(:temperature)

给出相同的结果,但是执行顺序更清晰。此外,很明显,这:temperature是Oven.bake调用的参数。

请注意,使用管道运算符时,每个函数的第一个参数都将重定位到管道运算符之前,因此被调用的函数似乎少了一个参数。例如:

Enum.each([1, 2, 3], &(&1+1)) # produces [2, 3, 4]

是相同的:

[1, 2, 3]
|> Enum.each(&(&1+1))
           

 类似资料:
  • 本文向大家介绍Elixir管道运算符和括号,包括了Elixir管道运算符和括号的使用技巧和注意事项,需要的朋友参考一下 示例 需要括号以避免模棱两可: 应写为:            

  • 本文向大家介绍Elixir比较运算符,包括了Elixir比较运算符的使用技巧和注意事项,需要的朋友参考一下 示例 平等: 价值平等x == y(1 == 1.0 # true) 价值不平等x == y(1 != 1.0 # false) 严格平等x === y(1 === 1.0 # false) 严格不等式x === y(1 !== 1.0 # true) 比较: x > y x >= y x

  • 问题内容: 我在Java中有以下语句: 为什么输出7? 问题答案: 这是按位或运算。它在二进制级别上进行修改。 使用科学模式打开Windows calc。你可以在十进制和二进制(和十六进制)之间切换,并执行按位运算,包括or,and,xor等。 要按位排列或在你的头部或纸上进行比较,请比较同一序数的每个数字。如果任一数字为1,则该序数的结果为1。

  • 我最近正在阅读有关管道优化的文章。我想问我是否正确理解处理器如何处理流水线。 这是简单测试程序的C代码: for循环生成的部分汇编代码: 在程序中,向量“vec”以恒定大小分配并用零填充。重要的“工作”发生在for循环中,其中所有向量变量都分配给5(只是一个随机值)。 我想问一下,这个汇编代码是否在管道中造成了一些暂停?原因可能是所有指令都以某种方式相互关联,并在相同的寄存器上工作。例如,管道需要

  • 无状态管道是纯粹的功能,通过输入数据流动而不记住任何东西或引起可检测的副作用。 大多数管道是无状态的。 我们使用的CurrencyPipe和我们创建的长度管是无状态管的示例。 状态管道是能够管理它们转换的数据的状态的管道。 创建HTTP请求,存储响应并显示输出的管道是有状态的管道。 有状态管道应谨慎使用。 Angular 2提供 ,这是有状态的。 View Example 实现有状态管道 // n

  • 传递参数 链接管道 我们可以将多个管道连接在一起,以便在一个表达式中使用多个管道。