one 运行 a 同名函数怎么用?
How would one run a functions with same name?
我是新的 Elixir 并且非常喜欢它。我在尝试使用同名函数时碰壁了。这是一个例子
defmodule ChangeName do
def convert(:captilize, name), do: String.capitalize(name)
def convert(:lower, name), do: String.downcase(name)
end
我正在使用 iex 和 ChangeName.convert.captilize 的基本调用,但我如何 运行 这些函数?
谢谢
您给出的示例没有定义两个同名函数,而是定义了一个多子句函数。大致相当于:
defmodule ChangeName do
def convert(conversion, name) do
case conversion do
:capitalize -> String.capitalize(name)
:lower -> String.downcase(name)
end
end
end
并相应地调用:
ChangeName.convert(:capitalize, "john")
ChangeName.convert(:lower, "JOHN")
事实上,在 Erlang 中,不可能定义两个具有相同名称和参数的函数。
我是新的 Elixir 并且非常喜欢它。我在尝试使用同名函数时碰壁了。这是一个例子
defmodule ChangeName do
def convert(:captilize, name), do: String.capitalize(name)
def convert(:lower, name), do: String.downcase(name)
end
我正在使用 iex 和 ChangeName.convert.captilize 的基本调用,但我如何 运行 这些函数?
谢谢
您给出的示例没有定义两个同名函数,而是定义了一个多子句函数。大致相当于:
defmodule ChangeName do
def convert(conversion, name) do
case conversion do
:capitalize -> String.capitalize(name)
:lower -> String.downcase(name)
end
end
end
并相应地调用:
ChangeName.convert(:capitalize, "john")
ChangeName.convert(:lower, "JOHN")
事实上,在 Erlang 中,不可能定义两个具有相同名称和参数的函数。