Можно ли использовать строковую интерполяцию с оператором трубы? - PullRequest
0 голосов
/ 05 июня 2018

Когда, например, вы изменяете строку через несколько шагов конвейера и хотите добавить ее в качестве интерполяции строковой переменной.

"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}")

1 Ответ

0 голосов
/ 05 июня 2018

Да, вы можете создать анонимную функцию и передать в нее:

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