Wie ist es möglich, den Pipeline-Platzhalter an das zweite Argument in einer Funktion zu übergeben?Pipeline- und Platzhalterargumente
defdefmodule CamelCase do
str = "The_Stealth_Warrior"
def to_camel_case(str) do
str
|> Regex(~r/_/, 'need_to_pass_str_argument_here', "")
|> String.split(" ")
|> Enum.map(&(String.capitalize(&1)))
|> List.to_string
end
end
ExUnit.start
defmodule TestCamelCase do
use ExUnit.Case
import CamelCase, only: [to_camel_case: 1]
test "to_camel_case" do
assert to_camel_case("The_Stealth_Warrior") == "TheStealthWarrior"
end
end
# Error
iex>
** (FunctionClauseError) no function clause matching in Regex.replace/4
(elixir) lib/regex.ex:504: Regex.replace("The_Stealth_Warrior", ~r/\W/, " ", [])
Sie können einfach die integrierte ['Macro.camelize/1'] (https://hexdocs.pm/elixir/Macro.html#camelize/1) verwenden, wenn das alles ist, was Sie tun möchten – Sheharyar
Hey @Sheharyar, ich stimme zu, es war mehr, als nur mit Elixir-Pipelines zu üben. –