管道操作员如何在最后一行返回结果?

luz*_*zny 0 elixir ecto phoenix-framework

我可以time_stamp在最后一行返回而不用大括号提取它吗?

{:ok, time_stamp} = Myapp.Repo.insert(changeset) # |> Map.get time_stamp
time_stamp

# {:ok, %Myapp.TimeStamp{__meta__: #Ecto.Schema.Metadata<:loaded>, active: true...}
Run Code Online (Sandbox Code Playgroud)

Gaz*_*ler 6

您可以使用Kernel.elem/2从索引中获取元组(从0开始).

Myapp.Repo.insert(changeset) |> elem(1)
Run Code Online (Sandbox Code Playgroud)

但是,如果您的变更集无效,那么这将返回变更集,因为将返回无效的变更集 {error, changeset}

如果您能解释一下为什么要这样做,那么我们可以进一步提供帮助.