首页 > 解决方案 > 是否可以在管道运算符中使用字符串插值?

问题描述

例如,当您通过几个管道步骤改变字符串并希望将其添加为字符串变量插值时。

"Hello-World" 
|> String.downcase 
|> String.slice(0..4) 
|> String.to_atom("var_#{&1}")

代替:

str = 
  "Hello-World" 
  |> String.downcase 
  |> String.slice(0..4) 
String.to_atom("var_#{str}")

标签: elixir

解决方案


是的,您可以创建一个匿名函数并将其插入:

iex(1)> "Hello-World" |> String.downcase |> String.slice(0..4)
        |> (&String.to_atom("var_#{&1}")).()
:var_hello

推荐阅读