如何从一系列管道函数中捕获一个值?

Ole*_*ann 2 elixir phoenix-framework

假设我有这个功能链

%{key1: "value 1", key2: "value 2"}
|> CustomModule.func1
|> CustomModule.func2
|> CustomModule.func3
Run Code Online (Sandbox Code Playgroud)

如何将返回值分配给变量final_result,然后在case语句中使用它或进一步测试?

Gaz*_*ler 6

你可以使用绑定 =

final_result = %{key1: "value 1", key2: "value 2"}
|> CustomModule.func1
|> CustomModule.func2
|> CustomModule.func3
Run Code Online (Sandbox Code Playgroud)

有些人更喜欢以下风格(https://github.com/niftyn8/el​​ixir_style_guide#source-code-layout):

final_result =
  %{key1: "value 1", key2: "value 2"}
  |> CustomModule.func1
  |> CustomModule.func2
  |> CustomModule.func3
Run Code Online (Sandbox Code Playgroud)

  • 你也可以直接进入case语句`true |> case do :( true - >"hello")`但是我会让你决定你是否认为它更具可读性. (3认同)