是否可以使用管道运算符进行字符串插值?

lap*_*ira 2 elixir

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

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

代替:

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

Dog*_*ert 6

是的,你可以创建一个匿名函数并管道:

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